/* Cagelink Publishing styles. The Reading Room design. */

:root{
  --paper:#f4ecdc; --ink:#231f1a; --green:#1e3a2c; --green-dk:#15291f; --brass:#b48f3e; --ox:#6d2127;
  --wood:#6b4526; --wood-dk:#4f321b; --wood-lt:#8a5b34;
  --serif:"EB Garamond",Georgia,serif; --display:"Playfair Display",Georgia,serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.5}
img{max-width:100%}
a{color:inherit}
[hidden]{display:none!important}
:focus-visible{outline:3px solid #d9a441;outline-offset:2px}
.wrap{max-width:1180px;margin:0 auto}
.gutter{padding-inline:max(16px,4vw)}

/* ---------- Header ---------- */
.hdr{background:var(--green);color:#efe4c8;padding:14px max(16px,4vw);border-bottom:4px solid var(--brass);position:sticky;top:0;z-index:5}
.h-wrap{max-width:1180px;margin:0 auto;display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.crest{width:46px;height:46px;border:2px solid var(--brass);border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-size:1.6rem;color:var(--brass);flex:none}
.b1{display:block;font-family:var(--display);font-size:1.45rem;letter-spacing:.02em;line-height:1}
.b2{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.3em;color:var(--brass)}
.nav{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;font-size:1rem}
.nav a,#nav-authors a{text-decoration:none;padding:.3em 0;border-bottom:2px solid transparent}
#nav-authors{display:contents}
.nav a.cur,.nav a:hover{border-bottom-color:currentColor}
.genre-nav{font:inherit;padding:.4em .6em;max-width:100%;background:var(--paper);color:var(--green);border:1px solid var(--brass)}

/* ---------- Buttons and forms ---------- */
.btn{display:inline-block;font:inherit;font-weight:600;padding:.75em 1.4em;border:0;cursor:pointer;text-decoration:none;background:var(--green);color:var(--paper)}
.btn.ghost{background:transparent;border:1px solid currentColor;color:inherit}
.signup{padding:clamp(20px,4vw,40px);max-width:760px;width:100%;margin-inline:auto;background:var(--green);color:var(--paper);border:3px solid var(--brass)}
.signup h2{margin:0 0 .4rem;font-size:1.8rem;font-family:var(--display)}
.signup p{margin:.2rem 0 1rem}
.signup .btn{background:var(--brass);color:#1e1a12}
.su-form{display:grid;gap:14px}
.su-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.su-form label{display:grid;gap:4px;font-size:.88rem;font-weight:600}
.su-form input[type=text],.su-form input[type=email]{font:inherit;font-weight:400;padding:.7em .8em;border:1px solid #9a927f;background:#fffdf8;color:#222;width:100%}
.su-form .btn{justify-self:start}
.fine{font-size:.8rem;opacity:.8;margin:0}

/* ---------- Home ---------- */
.hero{background:linear-gradient(rgba(30,58,44,.92),rgba(30,58,44,.92)),repeating-linear-gradient(90deg,#6b4a2a 0 22px,#7d5732 22px 30px,#5c3e22 30px 52px,#8a6238 52px 60px);color:var(--paper);padding:clamp(40px,7vw,80px) max(16px,4vw)}
.eyebrow{text-transform:uppercase;letter-spacing:.24em;font-size:.8rem;color:var(--brass);margin:0}
.hero h1{font-family:var(--display);font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.05;margin:.3em 0;max-width:16ch;text-wrap:balance}
.lede{font-size:1.25rem;max-width:52ch}
.hero-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.6rem}
.hero .btn{background:var(--brass);color:#1e1a12}
.hero .btn.ghost{background:transparent;color:var(--paper)}
.sec{max-width:1180px;margin:0 auto;padding-block:clamp(36px,6vw,64px)}
.sec-h{font-family:var(--display);font-size:clamp(1.8rem,4vw,2.6rem);margin:0 0 .3rem;color:var(--green)}
.sec-p{margin:0 0 1.6rem;max-width:60ch}
.cabinet{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;background:var(--wood);padding:14px;border:6px solid var(--wood-dk);box-shadow:inset 0 0 0 2px var(--wood-lt)}
.drawer{background:linear-gradient(#a0703f,#8a5b34);color:#23180d;text-decoration:none;padding:20px 14px 14px;display:grid;justify-items:center;align-content:center;gap:10px;border:1px solid var(--wood-dk);box-shadow:inset 0 1px 0 rgba(255,255,255,.2);transition:transform .15s,box-shadow .15s;min-height:118px}
a.drawer:hover,a.drawer:focus-visible{transform:translateY(4px);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 -4px 0 rgba(0,0,0,.25)}
.drawer.blank{opacity:.85}
.plate{background:linear-gradient(#e2c77e,#b48f3e);border:2px solid #6e5520;padding:6px 10px;width:84%;text-align:center}
.pl-name{display:block;background:#fbf6e8;padding:7px 8px;font-family:var(--display);font-size:1.05rem;line-height:1.2}
.drawer.blank .pl-name{background:#eee2c4}
.pull{width:48px;height:13px;border-radius:0 0 24px 24px;background:linear-gradient(#e2c77e,#8e6f2b);border:1px solid #6e5520}
.plates{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.bookplate{background:#fbf6ea;border:1px solid #cdbf9f;outline:6px double var(--pc);outline-offset:-14px;padding:30px 26px;text-decoration:none;display:grid;gap:8px;text-align:center;align-content:start;transition:box-shadow .15s;color:var(--ink);font-family:var(--serif)}
.bookplate:hover{box-shadow:0 8px 20px rgba(0,0,0,.14)}
.exl{text-transform:uppercase;letter-spacing:.3em;font-size:.72rem;color:var(--pc)}
.bp-name{font-family:var(--display);font-size:1.6rem;color:var(--green)}
.bp-gen{font-size:.95rem;font-style:italic;line-height:1.4}
.bp-go{font-size:.85rem;color:var(--ox);text-decoration:underline}

/* ---------- Footer ---------- */
.foot{background:var(--green-dk);color:#e8dcc0;padding:36px max(16px,4vw) 24px}
.f-wrap{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}
.foot p{margin:.2rem 0;line-height:1.6}
.f-h{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;opacity:.8}
.f-brand{font-family:var(--display);font-size:1.2rem}
.copy{font:inherit;font-size:.75rem;padding:.2em .6em;cursor:pointer;background:transparent;color:inherit;border:1px solid currentColor}
.f-small{max-width:1180px;margin:24px auto 0;font-size:.8rem;opacity:.7}

/* ---------- Author themes ----------
   To give a new author a look, use one of these names in catalog.js.  */
.theme-teal{--bg:#eef5f2;--sf:#ffffff;--tx:#1f3a3d;--mut:#4d6b6c;--ac:#2e7d7a;--on-ac:#fff;--cv1:#2e7d7a;--cv2:#1f5553;--cvt:#fff;--hd:"Alegreya",Georgia,serif;--bd:"Alegreya Sans",system-ui,sans-serif;--pc:#2e7d7a}
.theme-noir{--bg:#111013;--sf:#1c1a1f;--tx:#ebe6dd;--mut:#a39ba9;--ac:#c1272f;--on-ac:#fff;--cv1:#2a2530;--cv2:#0a090b;--cvt:#ebe6dd;--hd:"Oswald",Impact,sans-serif;--bd:"Libre Franklin",system-ui,sans-serif;--pc:#8b1c23}
.theme-blush{--bg:#fbf5f2;--sf:#ffffff;--tx:#3f3533;--mut:#76675f;--ac:#6f8f73;--on-ac:#fff;--cv1:#e3b7b1;--cv2:#8fa892;--cvt:#3f3533;--hd:"Cormorant Garamond",Georgia,serif;--bd:"Nunito Sans",system-ui,sans-serif;--pc:#b9837e}
.theme-frontier{--bg:#eddcbd;--sf:#f6ead2;--tx:#3a2616;--mut:#6b4f36;--ac:#8a4a1f;--on-ac:#fff;--cv1:#8a5a33;--cv2:#3a2616;--cvt:#f6ead2;--hd:"Rye",Georgia,serif;--bd:"Libre Baskerville",Georgia,serif;--pc:#7a4a26}
.theme-harbor{--bg:#eef1f5;--sf:#ffffff;--tx:#1b2a3f;--mut:#51627a;--ac:#2b4c7e;--on-ac:#fff;--cv1:#2b4c7e;--cv2:#14233a;--cvt:#f3e6c4;--hd:"Playfair Display",Georgia,serif;--bd:"Source Sans 3",system-ui,sans-serif;--pc:#2b4c7e}
.theme-plum{--bg:#f6f0f6;--sf:#ffffff;--tx:#33213a;--mut:#6a5572;--ac:#6d3b7a;--on-ac:#fff;--cv1:#6d3b7a;--cv2:#2e1836;--cvt:#f2d98c;--hd:"Cinzel",Georgia,serif;--bd:"Source Sans 3",system-ui,sans-serif;--pc:#6d3b7a}

/* ---------- Author page ---------- */
.author-page{background:var(--bg);color:var(--tx);font-family:var(--bd)}
.a-hero{padding:clamp(32px,6vw,64px) max(16px,4vw);background:var(--sf);border-bottom:6px solid var(--ac)}
.a-wrap{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:minmax(140px,240px) 1fr;gap:clamp(20px,4vw,48px);align-items:center}
.a-photo{aspect-ratio:4/5;width:100%;object-fit:cover;border:1px solid color-mix(in srgb,var(--tx) 20%,transparent)}
.a-photo.ph{background:repeating-linear-gradient(45deg,var(--sf),var(--sf) 10px,color-mix(in srgb,var(--sf) 88%,var(--tx)) 10px,color-mix(in srgb,var(--sf) 88%,var(--tx)) 20px);display:grid;place-items:center;color:var(--mut);font-size:.85rem}
.a-kicker{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;color:var(--ac);margin:0}
.author-page h1,.author-page h2{font-family:var(--hd);font-weight:600;text-wrap:balance}
.author-page h1{font-size:clamp(2.4rem,6vw,4rem);line-height:1.05;margin:.2em 0}
.a-tag{font-size:1.2rem;color:var(--mut);max-width:34ch;margin:0 0 1.2rem}
.a-chips{display:flex;flex-wrap:wrap;gap:8px}
.jump{font:inherit;font-size:.9rem;padding:.45em .9em;border:1px solid var(--ac);background:transparent;color:var(--tx);cursor:pointer;border-radius:999px}
.jump:hover,.jump:focus-visible{background:var(--ac);color:var(--on-ac)}
.a-main{max-width:1080px;margin:0 auto;padding:2.5rem max(16px,4vw) 3rem;display:grid;gap:2.5rem}
.a-shelf{scroll-margin-top:100px}
.a-shelf h2,.a-about h2{font-size:1.8rem;margin:0 0 1rem;padding-bottom:.4rem;border-bottom:2px solid var(--ac)}
.a-about p{max-width:65ch;line-height:1.65}
.author-page .signup{background:var(--sf);color:var(--tx);border:1px solid color-mix(in srgb,var(--tx) 15%,transparent)}
.author-page .signup h2{font-family:var(--hd)}
.author-page .signup .btn{background:var(--ac);color:var(--on-ac)}
.theme-noir.author-page h1,.theme-noir .a-shelf h2{text-transform:uppercase;letter-spacing:.04em}
.theme-noir .a-kicker{font-family:"Special Elite",monospace}
.theme-noir .signup input[type=text],.theme-noir .signup input[type=email]{background:#0f0e11;color:var(--tx);border-color:#3a3540}
.theme-blush.author-page h1{font-style:italic;font-weight:500}
.theme-frontier .a-shelf h2{text-align:center;border-bottom:none;border-top:3px double var(--ac);padding-top:.6rem}
.theme-plum.author-page h1,.theme-harbor.author-page h1{letter-spacing:.02em}

/* ---------- Books ---------- */
.books{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:22px}
.book{color:var(--tx);font-family:var(--bd)}
.book h4{margin:.7rem 0 .15rem;font-family:var(--hd);font-size:1.1rem}
.book .series{margin:0;color:var(--mut);font-size:.85rem}
.book .buy{display:flex;gap:6px;flex-wrap:wrap;margin:.6rem 0 0}
.btn-sm{font-size:.78rem;padding:.35em .7em;background:var(--ac);color:var(--on-ac);font-weight:700;text-decoration:none}
.btn-sm.ghost{background:transparent;color:var(--tx);border:1px solid color-mix(in srgb,var(--tx) 35%,transparent)}
.btn-sm.soon{background:transparent;color:var(--mut);border:1px dashed color-mix(in srgb,var(--tx) 35%,transparent)}
.cover,.cover-img{aspect-ratio:2/3;width:100%;max-width:100%;box-shadow:0 6px 16px rgba(0,0,0,.22);object-fit:cover;display:block}
.cover{background:linear-gradient(160deg,var(--cv1),var(--cv2));color:var(--cvt);display:flex;flex-direction:column;justify-content:space-between;padding:14px;font-family:var(--hd)}
.theme-frontier .cover{border:3px double var(--cvt);outline:4px solid var(--cv2);outline-offset:-1px}
.c-genre{font-family:var(--bd);font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;opacity:.85}
.c-title{font-size:1.5rem;line-height:1.1}
.theme-noir .c-title{text-transform:uppercase;color:var(--ac)}
.c-author{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;font-family:var(--bd)}

/* ---------- Genre page ---------- */
.genre{padding:2rem max(16px,4vw) 3rem}
.g-head,.g-body{max-width:1080px;margin:0 auto}
.g-head h1{font-family:var(--display);color:var(--green);font-size:clamp(2.2rem,5vw,3.4rem);margin:.2rem 0}
.g-head p{max-width:60ch}
.g-kicker{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;margin:0;color:var(--ox)}
.g-filter{display:flex;flex-wrap:wrap;gap:8px;margin-top:1rem}
.g-filter button{font:inherit;padding:.5em 1em;cursor:pointer;background:transparent;color:var(--green);border:1px solid var(--green)}
.g-filter button.on{background:var(--green);color:var(--paper)}
.g-body{display:grid;gap:22px;margin-top:2rem}
.g-group{padding:22px;background:var(--bg);color:var(--tx);font-family:var(--bd)}
.g-group h3{font-family:var(--hd);font-size:1.5rem;margin:0 0 1rem;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline}
.g-group h3 a{text-decoration:none}
.g-group h3 a:hover{text-decoration:underline}
.g-sub{font-family:var(--bd);font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ac)}
.g-index{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.g-index a{padding:14px 16px;background:#fbf6ea;border:1px solid #cdbf9f;text-decoration:none;font-family:var(--display);font-size:1.1rem;color:var(--green)}
.g-index a:hover{border-color:var(--brass)}

/* ---------- Thank you ---------- */
.thanks{padding:clamp(32px,8vw,90px) max(16px,4vw)}
.t-card{max-width:640px;margin:0 auto;background:#fbf6ea;border:1px solid #cdbf9f;outline:6px double var(--brass);outline-offset:-14px;padding:clamp(32px,6vw,56px);line-height:1.65}
.t-kicker{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;margin:0;color:var(--ox)}
.t-card h1{font-family:var(--display);color:var(--green);font-size:clamp(2rem,5vw,3rem);line-height:1.1;margin:.2rem 0 1rem;text-wrap:balance}
.t-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.4rem}
.t-card .btn.ghost{color:var(--green)}

@media (max-width:560px){
  .a-wrap{grid-template-columns:1fr}
  .a-photo{max-width:200px}
  .hdr{position:static}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.sec,#join{scroll-margin-top:90px}
.hdr,.foot{font-family:var(--serif)}
.su-eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:700;margin:0 0 .3rem!important;color:var(--brass)}
.author-page .su-eyebrow{color:var(--ac)}
