/* Give the supplied books the full hero stage; the planets appear only in the opening screen. */
.heroart{min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;isolation:isolate}
.hero-scene{position:relative;display:flex;align-items:center;justify-content:center;width:min(100%,680px);overflow:visible}
.hero-plinth{position:relative;flex:0 0 122%;padding:0;background:radial-gradient(circle at 50% 70%,rgba(230,204,142,.18),transparent 67%);border:0}
.heroart .paperback-set{display:block;width:100%;height:auto;max-width:none;object-fit:contain;filter:drop-shadow(0 18px 15px rgba(4,22,16,.33));transform:none;margin:0;position:relative}
main:focus{outline:none}
.herogrid{grid-template-columns:1fr 1.18fr;gap:24px}
.site-intro{position:fixed;inset:0;z-index:1100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(15px,3vh,28px);padding:30px 16px;overflow:hidden;background:radial-gradient(circle at 50% 48%,#294d3e,#153b30 64%,#0c271f);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .6s ease,visibility 0s linear .6s}
.intro-pending .site-intro{opacity:1;visibility:visible;pointer-events:auto;transition:none;animation:intro-fallback .6s ease 10.7s forwards}
@keyframes intro-fallback{to{opacity:0;visibility:hidden;pointer-events:none}}
.intro-visual{width:min(82vw,650px,calc((100vh - 180px)*1.767));aspect-ratio:760/430;flex:none}
.site-intro:focus{outline:none}
.site-intro .solar-system{display:block;width:100%;height:100%;pointer-events:none;opacity:.95}
.site-intro .solar-tracks ellipse{stroke-width:1.1;opacity:.48}
.site-intro .solar-tracks ellipse:nth-child(n+5){opacity:.63}
.intro-sun{filter:drop-shadow(0 0 14px rgba(247,200,116,.8))}
.orbital-body{filter:drop-shadow(0 0 9px rgba(239,203,132,.8))}
.intro-wordmark{margin:0;color:#f6efd9;font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(1.9rem,2.8vw,2.5rem);font-weight:400;line-height:1.15;letter-spacing:.24em;text-align:center;white-space:nowrap;transform:translateX(.12em)}
.intro-loading{margin:0;color:#e1c98e;font-size:12px;font-weight:500;line-height:1.5;letter-spacing:.32em;text-transform:uppercase;animation:intro-breath 2.8s ease-in-out infinite}
@keyframes intro-breath{0%,100%{opacity:.32;transform:scale(.96)}50%{opacity:1;transform:scale(1.06)}}
.hero-caption{position:static;display:block;width:min(100%,640px);margin:4px 0 0;padding:15px 8px 0;border-top:1px solid rgba(228,206,157,.3);text-align:center;transform:none;white-space:normal;color:#e2d0a5;letter-spacing:.14em;line-height:1.45}
.stack{background:radial-gradient(ellipse at 50% 70%,#fbf7ea 3%,#e9e4d6 70%);border:1px solid #e4decf;position:relative;overflow:hidden;padding:8px 8px 14px;min-height:360px}
.stack:after{content:'';position:absolute;left:10%;right:10%;bottom:12px;border-bottom:1px solid #c8bca2}
.stack .paperback-set{height:auto;width:100%;max-height:none;object-fit:contain;filter:drop-shadow(0 12px 13px rgba(63,65,50,.17));transform:none;margin:0;z-index:1}
.feature-editorial{grid-template-columns:1.12fr .88fr;gap:64px}
.feature-editorial .editorial-image{display:block;min-height:0;aspect-ratio:3/2;padding:0;background:#e8e4d8;border:1px solid #d8d5c7;box-shadow:0 18px 40px rgba(22,45,34,.12)}
.feature-editorial .editorial-image:after{display:none}
.feature-editorial .editorial-image img{display:block;width:100%;height:100%;max-height:none;object-fit:cover;filter:none}
.bookvisual{padding:0;overflow:hidden;background:#e9e6dc;border:1px solid #e2dece;box-shadow:0 12px 25px rgba(22,45,34,.08)}
.bookvisual img{filter:none}
.bookdetail .cover{padding:0;overflow:hidden;background:transparent;border:1px solid #ded7c8;box-shadow:0 18px 34px rgba(22,45,34,.12)}
.bookdetail .cover img{width:100%;height:auto}
.path{position:relative}.path-symbol{position:absolute;right:24px;top:22px;color:#a8864b;font-family:Georgia,serif;font-size:27px;line-height:1}
.paths .path:first-child{padding-left:24px}
.book-overview{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:42px 0 34px;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.book-overview .eyebrow{margin:0 0 10px}.book-overview p:not(.eyebrow){margin:0;color:#526158}.book-overview ul{margin:0;padding-left:20px;color:#526158}.book-overview li{padding-bottom:7px}
.publisher-description{border-bottom:1px solid var(--line);padding-bottom:20px}.publisher-description summary{cursor:pointer;color:#806332;font-size:15px;font-weight:600;list-style-position:inside}.publisher-description summary:hover{color:#594319}.publisher-description[open] summary{margin-bottom:25px}.publisher-description .details-text{max-width:720px}.publisher-description .details-text p{margin:0 0 18px}
@media(max-width:1050px){.herogrid{grid-template-columns:1fr 1.15fr;gap:20px}.hero-caption{font-size:10px}.stack{min-height:280px}}
@media(max-width:680px){.herogrid{grid-template-columns:1fr}.heroart{min-height:0;padding:12px 0 18px}.hero-plinth{flex-basis:118%}.heroart .paperback-set{width:100%}.hero-caption{font-size:10px}.intro-wordmark{font-size:clamp(1.85rem,6vw,2.3rem);letter-spacing:.18em}.stack{padding:0;min-height:0}.stack .paperback-set{width:100%}.book-overview{grid-template-columns:1fr;gap:22px;margin:32px 0}.path-symbol{right:14px;top:18px;font-size:23px}.herocopy p{margin:18px 0 25px}}
@media(max-width:400px){.hero h1{font-size:3.05rem}.actions{gap:10px}.actions .button{font-size:13px}.hero-caption{letter-spacing:.08em}.path-symbol{opacity:.8}.path p{min-height:116px}}
@media(max-width:1050px){.feature-editorial{gap:36px}}
@media(max-width:680px){.feature-editorial{grid-template-columns:1fr;gap:26px}.feature-editorial .editorial-image{width:100%}}

/* Gentle movement keeps the reading surface calm and the books in focus. */
.newsletter-hero { padding: clamp(78px, 10vw, 150px) 0 clamp(70px, 9vw, 115px); }
.newsletter-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 470px); align-items: center; gap: clamp(30px, 7vw, 110px); }
.newsletter-layout h1 { max-width: 640px; margin: 16px 0 25px; font-size: clamp(3.3rem, 6vw, 6rem); line-height: 1.02; }
.newsletter-layout > div > p:last-child { max-width: 530px; line-height: 1.75; }
.newsletter-form { display: grid; gap: 15px; padding: clamp(24px, 3.5vw, 42px); color: #153b30; background: #f7f2e7; border: 1px solid #d7c7a4; }
.newsletter-form > label:first-child { font-weight: 600; }
.newsletter-form input[type=email] { width: 100%; box-sizing: border-box; padding: 15px 17px; border: 1px solid #a8ae9e; border-radius: 2px; background: #fffdf9; color: #153b30; font: inherit; }
.newsletter-form input[type=email]:focus-visible, .newsletter-form input[type=checkbox]:focus-visible { outline: 2px solid #947441; outline-offset: 3px; }
.newsletter-consent { display: flex; align-items: flex-start; gap: 12px; font-size: .95rem; line-height: 1.5; cursor: pointer; }
.newsletter-consent input { flex: none; width: 18px; height: 18px; margin: 3px 0 0; accent-color: #153b30; }
.newsletter-form .button { width: max-content; max-width: 100%; cursor: pointer; border: none; }
.newsletter-form .button:disabled { cursor: wait; opacity: .65; }
.newsletter-feedback { min-height: 1.4em; margin: 0; font-size: .95rem; }
.newsletter-privacy { margin: 0; font-size: .85rem; line-height: 1.5; }
.newsletter-privacy a, .newsletter-details a { text-underline-offset: 3px; }
.newsletter-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.newsletter-details { max-width: 760px; margin: 0 auto; }
@media(max-width:760px) { .newsletter-layout { grid-template-columns: 1fr; } .newsletter-hero { padding: 75px 0 65px; } .newsletter-form { max-width: 560px; } }
.about-lead { display: grid; grid-template-columns: minmax(190px, 300px) 1fr; gap: clamp(28px, 6vw, 96px); align-items: center; max-width: 1060px; margin: 0 auto; }
.about-lead .portrait { display: block; width: 100%; height: auto; border-radius: 3px; }
.about-lead h2 { max-width: 640px; }
.about-lead p:last-child { max-width: 650px; line-height: 1.8; }
.about-story, .about-inspiration { max-width: 1040px; margin: 0 auto; }
.about-opening { display: grid; grid-template-columns: minmax(200px, .85fr) 1.15fr; gap: clamp(24px, 6vw, 90px); }
.about-opening h2, .about-inspiration h2 { max-width: 650px; }
.about-inspiration { display: grid; grid-template-columns: minmax(200px, .85fr) 1.15fr; gap: clamp(24px, 6vw, 90px); align-items: start; border-top: 1px solid #d8d2bf; padding-top: 48px; }
.about-inspiration .prose { max-width: none; margin: 0; }
.dedication { max-width: 980px; margin: 0 auto; padding: clamp(30px, 6vw, 76px); background: #153b30; color: #f6f0df; border: 1px solid #c0ad7b; }
.dedication .eyebrow { color: #d7be8b; }
.dedication h2 { color: #f6f0df; max-width: 720px; }
.dedication blockquote { margin: 30px 0 0; padding: 0 0 0 24px; border-left: 2px solid #c0ad7b; font-family: Georgia, serif; font-size: clamp(1.06rem, 2vw, 1.28rem); line-height: 1.8; }
.dedication blockquote p + p { margin-top: 22px; }
.about-next { max-width: 750px; margin: 0 auto; }
.about-next a { text-underline-offset: 3px; }
@media(max-width:680px) { .about-lead, .about-opening, .about-inspiration { grid-template-columns: 1fr; } .about-lead .portrait { max-width: 270px; } .dedication blockquote { padding-left: 16px; } }
.reading-table-wrap { overflow-x: auto; margin: 22px 0 28px; }
.reading-table { width: 100%; border-collapse: collapse; min-width: 480px; }
.reading-table th, .reading-table td { text-align: left; padding: 16px 14px; border-bottom: 1px solid #d8d2bf; vertical-align: top; }
.reading-table th { color: #153b30; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; }
.reading-table td:first-child { width: 42%; font-weight: 600; }
.reading-table a, .study-faq a, .policy a, .small-note a { color: #326c53; text-underline-offset: 3px; }
.study-faq { margin-top: 74px; scroll-margin-top: 24px; }
.study-faq details { border-bottom: 1px solid #d8d2bf; padding: 17px 0; }
.study-faq summary { cursor: pointer; font-size: 1.08rem; font-weight: 600; color: #153b30; }
.study-faq details p { margin: 12px 0 0; }
.newsletter-teaser { display: flex; gap: 28px; align-items: end; justify-content: space-between; padding: 30px 0; }
.newsletter-teaser h2 { margin: 10px 0; }
.newsletter-teaser p { max-width: 590px; }
.newsletter-teaser .textlink { flex: none; }
.policy { max-width: 780px; margin: 0 auto; }
.policy h2:not(:first-child) { margin-top: 42px; }
.small-note { font-size: .93rem; }
@media(max-width:680px) { .newsletter-teaser { display: block; } .reading-table { min-width: 470px; } }
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; scroll-padding-top: 18px; }
  .button { transition: transform .32s ease, box-shadow .32s ease, background-color .32s ease, border-color .32s ease; }
  .textlink, .path a, .navlinks a, .footlinks a, .indexitem { transition: color .3s ease, border-color .3s ease, background-color .3s ease; }
  .path, .bookcard { transition: transform .38s cubic-bezier(.2,.8,.2,1), background-color .38s ease; }
  .bookvisual, .bookvisual img { transition-duration: .45s; transition-timing-function: cubic-bezier(.2,.8,.2,1); }
  .motion-ready .reveal { opacity: 0; translate: 0 14px; transition: opacity .85s ease var(--reveal-delay, 0ms), translate .85s cubic-bezier(.22,1,.36,1) var(--reveal-delay, 0ms); }
  .motion-ready .reveal.is-visible { opacity: 1; translate: 0 0; }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .button:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(8,30,22,.16); }
  .path:hover { transform: translateY(-4px); background: rgba(214,195,153,.10); }
  .path:hover a, .textlink:hover { color: #6d542a; border-color: currentColor; }
  .bookcard:hover { transform: translateY(-4px); }
  .bookcard:hover .bookvisual img { transform: scale(1.025); }
  .indexitem:hover { background-color: #f1eddf; }

  .astro-cursor { position: fixed; z-index: 1000; left: 0; top: 0; width: 58px; height: 58px; margin: -29px 0 0 -29px; pointer-events: none; opacity: 0; color: #c79b54; transition: opacity .25s ease; }
  .astro-cursor.is-visible { opacity: 1; }
  .astro-cursor::before { content: ''; position: absolute; inset: 4px; border: 1px solid rgba(193,155,88,.56); border-radius: 50%; background: rgba(244,230,199,.04); transition: border-color .3s ease, background-color .3s ease; }
  .astro-cursor::after { content: '✦'; position: absolute; left: 50%; top: 50%; width: 14px; height: 14px; margin: -7px; font: 14px/14px Georgia,serif; text-shadow: 0 1px 6px rgba(18,48,35,.4),0 0 7px rgba(236,195,118,.45); animation: cursor-star-orbit 2.9s linear infinite; }
  .astro-cursor.is-interactive::before { border-color: rgba(209,164,83,.88); background: rgba(222,189,127,.13); }
  .astro-cursor.is-interactive::after { animation-duration: 2.1s; }
  @keyframes cursor-star-orbit {
    0%,100% { transform: translate(25px,0); }
    6.25% { transform: translate(23px,10px); }
    12.5% { transform: translate(18px,18px); }
    18.75% { transform: translate(10px,23px); }
    25% { transform: translate(0,25px); }
    31.25% { transform: translate(-10px,23px); }
    37.5% { transform: translate(-18px,18px); }
    43.75% { transform: translate(-23px,10px); }
    50% { transform: translate(-25px,0); }
    56.25% { transform: translate(-23px,-10px); }
    62.5% { transform: translate(-18px,-18px); }
    68.75% { transform: translate(-10px,-23px); }
    75% { transform: translate(0,-25px); }
    81.25% { transform: translate(10px,-23px); }
    87.5% { transform: translate(18px,-18px); }
    93.75% { transform: translate(23px,-10px); }
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .astro-cursor { display: none; }
  .intro-loading { animation: none; }
  .intro-pending .site-intro { animation: intro-fallback .001s steps(1,end) 10.7s forwards; }
}
