:root{--night:#0b1020;--night-2:#141b33;--ink:#1d2233;--paper:#f6f2ea;--paper-2:#ece5d8;--gold:#d9b25f;--gold-dark:#9a7424;--text-on-dark:#e8e4da;--muted-on-dark:#a9adbd;--muted:#5d6273;--radius:6px;--display:"Cinzel", Georgia, serif;--body:"Source Serif 4", Georgia, serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}body{font-family:var(--body);color:var(--text-on-dark);background:var(--night);margin:0;font-size:1.125rem;line-height:1.7}img{max-width:100%;height:auto;display:block}a{color:var(--gold)}h1,h2,h3{font-family:var(--display);letter-spacing:.01em;margin:0 0 .5em;font-weight:400;line-height:1.15}h1{font-size:clamp(2.6rem,6vw,4.5rem)}h2{font-size:clamp(2rem,4vw,2.9rem)}h3{font-size:1.6rem}.wrap{width:min(1120px,100% - 32px);margin-inline:auto}.narrow{max-width:680px}.eyebrow{font-family:var(--display);text-transform:uppercase;letter-spacing:.18em;color:var(--gold);margin:0 0 .6rem;font-size:.8rem}.hidden{display:none}.site-header{z-index:10;backdrop-filter:blur(8px);background:#0b1020e6;border-bottom:1px solid #d9b25f2e;position:sticky;top:0}.nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;min-height:64px;display:flex}.brand{font-family:var(--display);color:var(--text-on-dark);letter-spacing:.06em;font-size:1.35rem;text-decoration:none}.nav ul{flex-wrap:wrap;gap:1.5rem;margin:0;padding:0;list-style:none;display:flex}.nav ul a{color:var(--muted-on-dark);font-size:.95rem;text-decoration:none}.nav ul a:hover{color:var(--gold)}.buy{flex-wrap:wrap;gap:.6rem;margin-top:1.25rem;display:flex}.btn{border:1px solid var(--gold);border-radius:var(--radius);color:var(--gold);font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;padding:.6rem 1.15rem;font-size:.82rem;text-decoration:none;transition:background .15s,color .15s;display:inline-block}.btn:hover{background:#d9b25f1f}.btn-primary{background:var(--gold);color:var(--night)}.btn-primary:hover{background:#e7c57a}.section{padding:clamp(4rem,9vw,7rem) 0}.light{background:var(--paper);color:var(--ink)}.light a,.light .eyebrow{color:var(--gold-dark)}.light .btn{border-color:var(--gold-dark);color:var(--gold-dark)}.light .btn-primary{background:var(--ink);border-color:var(--ink);color:var(--paper)}.light .btn-primary:hover{background:#2e3550}.hero{background:radial-gradient(ellipse at 80% 20%, #5a46a059, transparent 60%), radial-gradient(ellipse at 10% 90%, #28786e40, transparent 55%), var(--night);padding:clamp(3rem,8vw,6rem) 0}.hero-grid{grid-template-columns:1.1fr 1fr;align-items:center;gap:clamp(2rem,5vw,4rem);display:grid}.lede{color:var(--muted-on-dark);max-width:44ch;font-size:1.25rem}.hero-photo{border-radius:var(--radius);outline-offset:10px;outline:1px solid #d9b25f4d;box-shadow:0 30px 60px #00000080}.trilogy{background:linear-gradient(to bottom, var(--night), var(--night-2))}.intro{max-width:62ch;color:var(--muted-on-dark);font-size:1.2rem;font-style:italic}.book-grid{grid-template-columns:repeat(3,1fr);gap:2.5rem;margin-top:3.5rem;display:grid}.book-card{flex-direction:column;display:flex}.book-card h3 a{color:var(--text-on-dark);text-decoration:none}.cover-link img{border-radius:3px;margin-bottom:1.5rem;transition:transform .25s;box-shadow:0 18px 40px #0000008c}.cover-link:hover img{transform:translateY(-4px)}.teaser{color:var(--muted-on-dark);-webkit-line-clamp:5;-webkit-box-orient:vertical;margin:0 0 .5rem;font-size:1rem;display:-webkit-box;overflow:hidden}.more{font-size:.95rem}.book-card .buy{margin-top:auto;padding-top:1rem}.status{color:var(--gold);background:#d9b25f26;border-radius:999px;align-self:flex-start;margin:0 0 .75rem;padding:.15rem .6rem;font-size:.85rem;display:inline-block}.rows{gap:3.5rem;margin-top:2.5rem;display:grid}.book-row{grid-template-columns:220px 1fr;align-items:start;gap:2.5rem;display:grid}.book-row .cover-link img{box-shadow:0 12px 30px #00000040}.book-row h3 a{color:var(--ink);text-decoration:none}.soon{background:var(--night-2)}.soon-grid{grid-template-columns:1fr 1.2fr;align-items:center;gap:clamp(2rem,5vw,4rem);display:grid}.soon-grid img{border-radius:var(--radius);filter:saturate(.85)}.soon p:not(.eyebrow){color:var(--muted-on-dark)}.contact-grid{grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);display:grid}.contact-meta{line-height:2}.contact-form{gap:1rem;display:grid}.contact-form label{color:var(--muted);gap:.35rem;font-size:.95rem;display:grid}.contact-form input,.contact-form textarea{font:inherit;border-radius:var(--radius);color:var(--ink);background:#fff;border:1px solid #cfc6b4;padding:.7rem .8rem;font-size:1rem}.contact-form input:focus,.contact-form textarea:focus{outline:2px solid var(--gold-dark);outline-offset:1px}.contact-form button{justify-self:start}.detail-grid{grid-template-columns:360px 1fr;align-items:start;gap:clamp(2rem,5vw,4.5rem);display:grid}.detail-cover{border-radius:3px;position:sticky;top:96px;box-shadow:0 24px 50px #0009}.book-detail p:not(.eyebrow):not(.status){color:var(--muted-on-dark);max-width:64ch}.sibling-grid{grid-template-columns:repeat(2,minmax(0,220px));gap:2.5rem;margin-top:1.5rem;display:grid}.sibling{gap:.3rem;text-decoration:none;display:grid}.sibling img{border-radius:3px;margin-bottom:.8rem;box-shadow:0 12px 30px #00000040}.sibling-title{font-family:var(--display);color:var(--ink);font-size:1.3rem}.profiles{flex-wrap:wrap;gap:.5rem 1.4rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.site-footer .profiles{justify-content:center;margin:.8rem 0}.site-footer .profiles a{color:var(--muted-on-dark);text-decoration:none}.site-footer .profiles a:hover{color:var(--gold)}.book-detail .goodreads{margin-top:1.1rem;font-size:.95rem}.site-footer{text-align:center;color:var(--muted-on-dark);border-top:1px solid #d9b25f2e;padding:3rem 0}.site-footer p{margin:.3rem 0}.small{font-size:.85rem}@media (width<=860px){.hero-grid,.soon-grid,.contact-grid,.detail-grid{grid-template-columns:1fr}.hero-photo{order:-1}.book-grid{grid-template-columns:1fr;gap:4rem;max-width:420px}.book-row{grid-template-columns:1fr}.book-row .cover-link{max-width:220px}.detail-cover{max-width:300px;position:static}.nav ul{gap:1rem}}@media (width<=600px){.nav{gap:.25rem 1rem;padding:.6rem 0}.nav ul{gap:.9rem}.nav ul a{font-size:.85rem}}
