/* A Promise of Fireflies — book-inspired nightfall design system.
   Creates a light, accessible reading environment with deep-plum and midnight-blue anchors.
   Separate from base styles so the entire theme can be revised independently. */
:root {
  --night: #141B3B;
  --indigo: #26396D;
  --plum: #392653;
  --amethyst: #6854A5;
  --lavender: #AFA6D8;
  --periwinkle: #B8C6ED;
  --gold: #E9C894;
  --cloud: #F7F7FD;
  --ice: #EEF1FB;
  --ink: #202846;
  --ivory: #F3F3FC;
  --sand: #DFE4F4;
  --rose: #7663B3;
  --sage: #342C72;
  --border: #DCE1F0;
  --muted: #4A5573;
}
html { color-scheme: light; }
body { background: var(--cloud); color: var(--ink); font-size: 18px; line-height: 1.68; }
p { font-size: 18px; line-height: 1.76; }
:where(a, button):focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
::selection { background: #D7C9ED; color: var(--night); }

/* Branding and navigation */
.site-header { height: 108px; background: #F8F8FF; border-bottom: 1px solid #D7DDF0; }
.brand-name, .footer-brand { color: var(--night); }
.brand-name { font-size: 36px; }
.brand-dot { color: #8467BA; }
.brand-caption { color: #465278; font-size: 11px; letter-spacing: .12em; }
.main-nav { gap: 30px; }
.main-nav>a:not(.nav-email) { font-size: 17px; color: #2D345A; font-weight: 750; }
.main-nav>a:not(.nav-email):hover, .main-nav>a[aria-current=page] { color: #6450A0; }
.nav-email { background: var(--indigo); border-color: var(--indigo); color: #fff; font-size: 17px; min-height: 55px; }
.nav-email:hover { background: var(--plum); border-color: var(--plum); }
.menu-toggle span { background: var(--night); }

/* Primary buttons and consistent accessible CTA sizing */
.button { font-size: 18px; font-weight: 800; min-height: 58px; padding: 17px 24px; line-height: 1.35; }
.button svg, .text-link svg, .nav-email svg { width: 18px; height: 18px; }
.button-solid { background: #5A48A0; border-color: #5A48A0; color: #fff; }
.button-solid:hover { background: #382A72; border-color: #382A72; }
.button-outline { background: transparent; border: 1.5px solid #867BB2; color: var(--night); }
.button-outline:hover { background: #E9E6F8; border-color: #65509E; }
.button-light { background: #F8F6FF; border-color: #F8F6FF; color: #31245E; }
.button-light:hover { background: #DED7F1; border-color: #DED7F1; }
.button-ghost { border-color: #C2B7E1; color: #fff; }
.button-ghost:hover { background: #FFFFFF24; }
.text-link { color: #443277; border-bottom-color: #A58FCF; font-size: 18px; font-weight: 800; line-height: 1.5; }

/* Night-sky hero: twilight gradients and subtle gold firefly points */
.hero {
  color: #fff;
  background:
    radial-gradient(circle at 68% 17%, rgba(252,220,150,.54) 0 2px, transparent 4px),
    radial-gradient(circle at 91% 49%, rgba(252,220,150,.40) 0 1px, transparent 4px),
    radial-gradient(circle at 58% 72%, rgba(252,220,150,.46) 0 1px, transparent 3px),
    linear-gradient(117deg, #181A3D 0%, #302457 52%, #28467A 100%);
}
.hero-grid { min-height: 730px; }
.eyebrow, .eyebrow.light { color: #E4DFF6; font-size: 14px; line-height: 1.6; letter-spacing: .115em; }
.eyebrow .line { background: var(--gold); }
.hero h1 { color: #fff; font-size: clamp(80px, 8.2vw, 126px); }
.hero h1 em, .page-hero h1 em { color: #D3C4F2; }
.hero-lede {
  color: #fff;
  font-size: clamp(29px, 3vw, 42px);
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.27;
  letter-spacing: -.012em;
  max-width: 610px;
  margin-bottom: 24px;
  text-wrap: pretty;
}
.hero-detail { color: #E0E5F6; font-size: 18px; line-height: 1.75; max-width: 540px; }
.hero .button-outline { color: #fff; border-color: #AFB4D8; background: #FFFFFF0B; }
.hero .button-outline:hover { background: #FFFFFF27; border-color: #F6EFFD; }
.hero-footnote { color: #CFD7F1; font-size: 13px; letter-spacing: .12em; margin-top: 70px; }
.hero-footnote span { color: var(--gold); }
.hero-arch {
  background: linear-gradient(145deg, #5664A5 0%, #45336D 58%, #2D375F 100%);
  box-shadow: inset 0 0 0 1px #C9C5F322;
}
.hero-cover-main,.hero-cover-back { filter: drop-shadow(0 26px 26px #0A0D2C82); }
.hero-caption { color: #F4EBFF; font-size: 13px; letter-spacing: .11em; }
.hero-caption span { color: var(--gold); }
.cover-frame { background: linear-gradient(150deg, #6678B5, #392957); box-shadow: 0 16px 35px #20214525; }
.cover-fallback { background: linear-gradient(150deg, #39345F, #364B88); color: #FAF8FF; }
.cover-fallback strong { color: #fff; }
.cover-fallback small { color: #E9D9FB; }

/* Awards strip, series discovery, cards */
.trust-strip { background: #E8EBF9; border-block-color: #D4DAEF; }
.trust-items { min-height: 99px; color: #31355F; font-size: 14px; letter-spacing: .075em; }
.trust-separator { background: #BCC4E1; }
.section { background: #FBFAFF; }
.section-kicker { color: #644C9C; font-size: 14px; letter-spacing: .13em; margin-bottom: 22px; }
.section-heading h2, .about-preview h2, .extras h2, .section-heading.compact h2 { color: var(--night); }
.section-heading h2 span, .about-preview h2 span, .section-heading.compact h2 span { color: #7460B0; }
.section-heading p, .section-heading.compact>p { color: #3D4969; font-size: 19px; line-height: 1.75; }
.section-heading>div:last-child { max-width: 430px; }
.book-grid { gap: 64px 34px; }
.book-card-cover { background: linear-gradient(145deg, #E3E7F7, #E5DDF2); height: 450px; padding: 39px; }
.book-card-cover:hover { background: linear-gradient(145deg, #D9E1F6, #DDD4F0); }
.book-card h3 { color: #20254D; font-size: 33px; line-height: 1.12; }
.book-card p { color: #44506A; font-size: 18px; line-height: 1.68; }
.small-overline { color: #434D70; font-size: 13px; letter-spacing: .075em; line-height: 1.5; }
.small-overline span { color: #6E54A5; }
.book-card-content { padding-top: 27px; }

/* Flagship featured-book section: deep plum to navy */
.feature-band { background: linear-gradient(115deg, #37204D 0%, #1B295B 100%); color: #fff; }
.feature-grid { min-height: 690px; }
.feature-text h2 { color: #fff; }
.feature-text h2 em { color: #CEC0EE; }
.feature-text p { color: #E5E7F6; font-size: 19px; line-height: 1.76; }
.feature-cover .cover-frame { box-shadow: 16px 34px 55px #0C103B99; }

/* About preview and final CTA */
.about-preview { background: #EEF0FB; }
.about-preview p { color: #3E4B69; font-size: 19px; line-height: 1.75; }
.about-preview-card { background: linear-gradient(155deg, #D8DDF4, #E7E0F5); }
.quote-mark { color: #6A559D; }
.about-preview-card p { color: var(--night); font-size: 31px; }
.about-preview-card>span:last-child { color: #4E4276; font-size: 13px; }
.end-cta { background: linear-gradient(120deg, #171934, #35234F 60%, #1D3560); }
.end-cta .section-kicker { color: #DDCEFA; }
.end-cta h2 { color: #fff; }
.end-cta p { color: #E4E7F7; font-size: 20px; line-height: 1.7; max-width: 690px; }

/* Footer intentionally deep navy to anchor every page */
.site-footer { background: #171E3F; color: #F7F6FF; }
.site-footer .footer-brand { color: #F8F7FF; }
.footer-top { border-bottom-color: #8E96C250; }
.footer-top p { color: #D7DDF2; font-size: 17px; max-width: 450px; }
.footer-right a { color: #F6F4FF; font-size: 17px; }
.footer-right a:hover, .footer-bottom a:hover { color: var(--gold); }
.footer-bottom { color: #CDD4EE; font-size: 14px; }

/* Standard inner page hero / Books and Privacy */
.page-hero {
  color: #fff;
  background: linear-gradient(112deg, #1A1C42 0%, #34305F 59%, #2B4576 100%);
  padding: 100px 0 115px;
}
.page-hero h1 { color: #fff; }
.page-hero h1 span { color: #CEC2F2; }
.page-hero p { color: #E4E6F8; font-size: 21px; line-height: 1.65; max-width: 750px; }
.page-hero-about { background: linear-gradient(115deg, #2F204C, #1E3564); }
.page-hero-about .eyebrow { color: #E1D9F5; }
.page-hero-about h1 em { color: #D3C4F2; }
.page-hero-about p { color: #E2E7F8; }
.book-index, .detail-page { background: #FBFAFF; }
.extras { background: #EFF0FA; }
.extra-card { background: #fff; box-shadow: 0 8px 25px #252F5A0A; border: 1px solid #E0E4F4; }
.extra-card h3 { color: #21294D; font-size: 33px; }
.extra-card p { color: #46526A; font-size: 18px; line-height: 1.67; }
.extra-card .button { font-size: 17px; min-height: 54px; }

/* Author details */
.bio-identity { background: linear-gradient(150deg, #E1DDF4, #D6E0F2); }
.bio-identity>span, .bio-identity small { color: #514878; font-size: 13px; }
.bio-identity strong { color: var(--night); }
.bio-identity strong span { color: #735DB3; }
.bio-copy h2, .bio-copy h3 { color: #222648; }
.bio-copy h3 { font-size: 35px; }
.bio-copy p { color: #3B4661; font-size: 19px; line-height: 1.83; }
.bio-rule { background: #CBD2E8; }

/* Individual book pages and metadata */
.detail-content .eyebrow { color: #55428A; }
.detail-content .eyebrow .line { background: #7864AD; }
.detail-page { padding-top: 65px; }
.detail-image { background: linear-gradient(145deg, #DFE5F5, #E7DFF2); }
.detail-image-note { color: #465074; font-size: 13px; }
.breadcrumb { color: #566180; font-size: 14px; }
.breadcrumb a { color: #51428D; }
.detail-content h1 { color: #1C2349; font-size: clamp(55px, 5vw, 77px); line-height: 1.03; }
.detail-content h1 span { color: #725DB0; }
.detail-content h2 { color: #4A3C7C; font-size: 29px; line-height: 1.35; }
.detail-content>p { color: #36435E; font-size: 19px; line-height: 1.8; }
.award-chip { border-color: #AAA0CE; background: #EDE8F8; color: #4A367F; font-size: 15px; line-height: 1.5; padding: 12px 16px; }
.buy-section { border-top-color: #D5DAEC; }
.buy-section>span { color: #3D316B; font-size: 14px; }
.buy-section>small { color: #525D78; font-size: 14px; }
.detail-meta { gap: 40px; }
.detail-meta span { color: #4D5877; font-size: 13px; }
.detail-meta strong { color: #253052; font-size: 16px; }
.book-next { border-top-color: #CBD1EA; }
.book-next div span { color: #58418E; font-size: 13px; }
.book-next div strong { color: #242A50; font-size: 26px; line-height: 1.26; }
.book-next>a { background: #5B4A9C; }
.book-next>a:hover { background: #30255D; }

/* Privacy page */
.privacy-copy h2 { color: var(--night); font-size: 40px; }
.privacy-copy h3 { color: var(--plum); font-size: 26px; }
.privacy-copy p, .privacy-copy li { color: #3D4967; font-size: 19px; line-height: 1.78; }
.fineprint { color: #57627D !important; font-size: 15px !important; }

/* Tablet: two books per row, generous link and text sizing */
@media (min-width: 761px) and (max-width: 1050px) {
  .container { width: min(100% - 56px, 1240px); }
  .site-header { height: 88px; }
  .brand-name { font-size: 31px; }
  .brand-caption { font-size: 10px; }
  .main-nav { gap: 18px; }
  .main-nav>a:not(.nav-email) { font-size: 15px; }
  .nav-email { font-size: 15px; padding: 13px 15px; }
  .hero-grid { min-height: 690px; }
  .hero h1 { font-size: clamp(75px, 8vw, 105px); }
  .hero-lede { font-size: 30px; }
  .hero-detail { font-size: 17px; }
  .book-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .book-card-cover { height: 390px; }
  .detail-grid { gap: 7%; }
}

/* Phones: one comfortable book column, no cramped two-column descriptions */
@media (max-width: 760px) {
  body { font-size: 17px; }
  p { font-size: 17px; }
  .container { width: calc(100% - 42px); }
  .site-header { height: 88px; }
  .brand-name { font-size: 32px; }
  .brand-caption { font-size: 10px; }
  .main-nav { top: 88px; background: #F8F8FF; border-top-color: #D8DEF1; box-shadow: 0 20px 30px #20264B26; }
  .main-nav>a:not(.nav-email) { font-size: 18px; border-bottom-color: #D5DAF0; padding: 17px 7px; }
  .main-nav .nav-email { margin-top: 17px; }
  .nav-email { font-size: 17px; }
  .hero-grid { min-height: 0; }
  .hero-copy { padding: 70px 0 12px; }
  .hero h1 { font-size: clamp(73px, 13.5vw, 90px); }
  .hero-lede { font-size: clamp(29px, 7.5vw, 37px); line-height: 1.23; margin-bottom: 20px; }
  .hero-detail { font-size: 17px; line-height: 1.75; }
  .hero-footnote { font-size: 12px; margin-top: 48px; }
  .hero-art { min-height: 450px; }
  .hero-caption { font-size: 12px; bottom: 10px; }
  .eyebrow, .eyebrow.light { font-size: 12px; letter-spacing: .08em; }
  .button { font-size: 17px; min-height: 54px; padding: 16px 19px; }
  .text-link { font-size: 17px; }
  .trust-items { min-height: 96px; font-size: 12px; line-height: 1.4; letter-spacing: .015em; text-align: center; }
  .trust-items span:nth-child(3) { max-width: none; }
  .section { padding: 84px 0; }
  .section-kicker { font-size: 13px; }
  .section-heading { margin-bottom: 43px; }
  .section-heading h2, .about-preview h2, .extras h2, .section-heading.compact h2 { font-size: clamp(51px, 10vw, 65px); }
  .section-heading p, .section-heading.compact>p, .about-preview p { font-size: 18px; line-height: 1.73; }
  .book-grid { grid-template-columns: 1fr; gap: 57px; }
  .book-card-cover { height: 440px; padding: 48px; }
  .book-card-content { padding: 24px 4px 0; }
  .book-card h3 { font-size: 33px; margin-top: 12px; }
  .book-card p { font-size: 18px; line-height: 1.7; }
  .small-overline { font-size: 13px; line-height: 1.5; }
  .feature-grid { padding: 45px 0 77px; }
  .feature-text h2 { font-size: clamp(58px, 11vw, 74px); }
  .feature-text p { font-size: 18px; line-height: 1.7; }
  .about-preview-card { padding: 44px 32px; }
  .about-preview-card p { font-size: 29px; }
  .about-preview-card>span:last-child { font-size: 12px; }
  .end-cta h2 { font-size: clamp(57px, 11.4vw, 78px); }
  .end-cta p { font-size: 18px; }
  .footer-top p, .footer-right a { font-size: 17px; }
  .footer-bottom { font-size: 13px; }
  .page-hero { padding: 75px 0 90px; }
  .page-hero h1 { font-size: clamp(60px, 12vw, 85px); }
  .page-hero p { font-size: 19px; }
  .extra-card { padding: 22px; }
  .extra-card h3 { font-size: 31px; }
  .extra-card p { font-size: 17px; }
  .extra-card .button { font-size: 16px; padding: 14px 15px; }
  .bio-identity { min-height: 310px; }
  .bio-identity>span,.bio-identity small { font-size: 12px; }
  .bio-copy h2 { font-size: 55px; }
  .bio-copy h3 { font-size: 30px; }
  .bio-copy p { font-size: 18px; line-height: 1.8; }
  .breadcrumb { font-size: 13px; flex-wrap: wrap; }
  .detail-content h1 { font-size: clamp(55px, 10vw, 70px); }
  .detail-content h2 { font-size: 25px; }
  .detail-content>p { font-size: 18px; line-height: 1.78; }
  .detail-image-note { font-size: 12px; }
  .buy-section>span { font-size: 13px; }
  .buy-section>small { font-size: 14px; }
  .detail-meta span { font-size: 12px; }
  .detail-meta strong { font-size: 15px; }
  .book-next div span { font-size: 12px; }
  .book-next div strong { font-size: 24px; }
  .privacy-copy h2 { font-size: 36px; }
  .privacy-copy h3 { font-size: 25px; }
  .privacy-copy p, .privacy-copy li { font-size: 18px; }
}
@media (max-width: 410px) {
  .container { width: calc(100% - 34px); }
  .brand-name { font-size: 29px; }
  .hero h1 { font-size: 68px; }
  .hero-lede { font-size: 29px; }
  .hero-art { min-height: 400px; }
  .hero-caption { font-size: 11px; }
  .trust-items { font-size: 11px; }
  .book-card-cover { height: 360px; padding: 36px; }
  .book-card h3 { font-size: 30px; }
  .extra-card { align-items: flex-start; gap: 15px; }
  .extra-card .cover-frame { width: 31%; }
  .extra-card h3 { font-size: 27px; }
  .extra-card .button { font-size: 15px; }
  .feature-text h2 { font-size: 56px; }
  .page-hero h1 { font-size: 60px; }
  .detail-content h1 { font-size: 53px; }
}
@media (max-width: 355px) {
  .hero h1 { font-size: 62px; }
  .hero-lede { font-size: 27px; }
  .book-card-cover { height: 330px; padding: 28px; }
  .extra-card { flex-direction: column; }
  .extra-card .cover-frame { width: 55%; }
  .feature-text h2 { font-size: 50px; }
  .page-hero h1 { font-size: 54px; }
}
