:root{
  --cream:#f1ede3; --cream-card:#faf7f0; --charcoal:#2b2b2e; --ink:#26262b;
  --muted:#6b6f76; --border:#ddd6c8; --deep-blue:#1e2f44; --gold:#b89b5e;
  --forest:#1f3a2e; --radius:14px;
  --font-head:'Spectral',Georgia,serif; --font-body:'Work Sans',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--cream);line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--font-head);line-height:1.2;letter-spacing:-.01em;margin:0 0 .4em}
h1{font-size:clamp(2rem,5vw,3.25rem)}
h2{font-size:clamp(1.4rem,3vw,2rem)}
h3{font-size:1.15rem}
p{margin:0 0 1rem}
a{color:inherit}
.container{max-width:1100px;margin:0 auto;padding:0 20px}
.reading{max-width:760px}
.muted{color:var(--muted)}
.body-text{color:#3a3a40}
.italic{font-style:italic}
.lead{font-size:1.1rem;color:#3a3a40;max-width:760px}
.eyebrow{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;margin-bottom:.6rem}
.gold{color:var(--gold)}
.forest-eyebrow{color:var(--forest)}

/* header */
#site-header{position:sticky;top:0;z-index:50;background:rgba(241,237,227,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
.nav{display:flex;align-items:center;justify-content:space-between;height:64px;gap:16px}
.brand{font-family:var(--font-head);font-size:1.2rem;text-decoration:none;color:var(--ink);white-space:nowrap}
.navlinks{display:flex;flex-wrap:wrap;gap:18px}
.navlink{text-decoration:none;color:rgba(38,38,43,.72);font-size:.9rem;font-weight:500}
.navlink:hover,.navlink.active{color:var(--ink)}
.menu-toggle{display:none;background:none;border:1px solid var(--border);border-radius:8px;font-size:1.2rem;padding:4px 10px;cursor:pointer}
@media(max-width:1000px){
  .menu-toggle{display:block}
  .navlinks{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;background:var(--cream-card);border-bottom:1px solid var(--border);padding:12px 20px}
  .navlinks.open{display:flex}
}

/* buttons */
.btn{display:inline-block;text-decoration:none;border-radius:10px;padding:10px 18px;font-weight:600;font-size:.92rem;cursor:pointer;border:1px solid transparent;transition:.15s}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.btn-primary{background:var(--deep-blue);color:#faf7f0}
.btn-primary:hover{opacity:.92}
.btn-outline{border-color:var(--border);background:var(--cream-card);color:var(--ink)}
.btn-outline:hover{border-color:var(--gold)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:rgba(0,0,0,.04)}
.btn-accent{background:var(--gold);color:#2b2b2e;border-color:var(--gold)}
.btn-accent:hover{filter:brightness(1.06)}
.custom-btn-note{font-size:.92rem;color:var(--muted);margin:16px 0 2px;max-width:60ch}

/* hero */
.hero{border-bottom:1px solid var(--border);background:
  radial-gradient(1000px 500px at 18% 8%,rgba(184,155,94,.16),transparent 55%),
  radial-gradient(800px 460px at 82% 0%,rgba(30,47,68,.12),transparent 60%)}
.hero-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:center;padding:72px 20px}
.hero-text h1{margin-top:4px}
.portrait{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:18px;border:1px solid var(--border)}
.cover{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:12px;border:1px solid var(--border)}
.hero-photo{max-width:360px;margin:0 auto;width:100%}
@media(max-width:820px){.hero-grid{grid-template-columns:1fr;padding:48px 20px}.hero-photo{max-width:300px}}

/* sections */
.section{padding:64px 0;border-bottom:1px solid var(--border)}
.section.alt{background:#ece7da}
.page-head{padding:56px 0;border-bottom:1px solid var(--border);background:radial-gradient(900px 400px at 15% 10%,rgba(184,155,94,.14),transparent 60%)}
.page-head.forest{background:radial-gradient(800px 400px at 12% 0,rgba(31,58,46,.14),transparent 60%)}
.stack>*{margin-bottom:40px}
.stack>*:last-child{margin-bottom:0}

/* badges */
.badge{display:inline-block;border-radius:999px;padding:4px 12px;font-size:.74rem;font-weight:600;border:1px solid;white-space:nowrap}
.meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:10px 0}
.badge-published{background:rgba(30,47,68,.12);color:#1e2f44;border-color:rgba(30,47,68,.3)}
.badge-available-now{background:rgba(184,155,94,.18);color:#785c28;border-color:rgba(184,155,94,.45)}
.badge-in-progress{background:rgba(31,58,46,.14);color:#1f3a2e;border-color:rgba(31,58,46,.3)}
.badge-querying-agents{background:rgba(43,43,46,.1);color:#2b2b2e;border-color:rgba(43,43,46,.25)}
.badge-drafting{background:rgba(31,58,46,.1);color:#1f3a2e;border-color:rgba(31,58,46,.25)}
.badge-revising{background:rgba(184,155,94,.14);color:#785c28;border-color:rgba(184,155,94,.35)}
.badge-coming-soon{background:#e7e2d6;color:var(--ink);border-color:var(--border)}
.badge-on-hold{background:rgba(43,43,46,.08);color:var(--muted);border-color:var(--border)}

/* cards */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:24px}
.feature-card{display:flex;flex-direction:column;background:var(--cream-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;text-decoration:none;color:inherit;transition:.18s;box-shadow:0 10px 30px rgba(18,18,20,.05)}
.feature-card:hover{box-shadow:0 16px 40px rgba(18,18,20,.1);transform:translateY(-2px)}
.card-desc{flex:1;font-size:.94rem;color:#3a3a40}
.link-more{color:var(--gold);font-weight:600;font-size:.9rem;margin-top:8px}
@media(max-width:820px){.feature-grid{grid-template-columns:1fr}}

.book-card{background:var(--cream-card);border:1px solid var(--border);border-radius:18px;padding:28px;box-shadow:0 10px 30px rgba(18,18,20,.05)}
.book-grid{display:grid;grid-template-columns:230px 1fr;gap:28px}
.book-cover{width:100%}
.excerpt,.book-gallery{margin-top:24px;padding-top:22px;border-top:1px solid var(--border)}
.note{display:inline-block;background:#ece7da;border-radius:10px;padding:8px 14px;font-size:.9rem;margin-top:6px}
@media(max-width:680px){.book-grid{grid-template-columns:1fr}.book-cover{max-width:230px}}

.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.project-card{background:var(--cream-card);border:1px solid var(--border);border-radius:18px;padding:26px;box-shadow:0 10px 30px rgba(18,18,20,.05)}
.project-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
@media(max-width:820px){.project-grid{grid-template-columns:1fr}}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px}
.chip{background:#ece7da;border-radius:999px;padding:5px 12px;font-size:.8rem;color:#3a3a40}
.excerpt-toggle{margin-top:10px}
.excerpt-toggle summary{cursor:pointer;font-weight:600;color:var(--deep-blue)}

/* about */
.about-grid{display:grid;grid-template-columns:320px 1fr;gap:40px}
.lead-text{font-size:1.12rem}
@media(max-width:820px){.about-grid{grid-template-columns:1fr}.about-photo{max-width:320px}}

/* galleries */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.gallery-item{display:block;border-radius:12px;overflow:hidden;border:1px solid var(--border)}
.gallery-item img{width:100%;height:150px;object-fit:cover;display:block}
.gallery-empty,.info-box,.disclaimer{background:var(--cream-card);border:1px dashed var(--border);border-radius:12px;padding:18px;color:var(--muted);font-size:.92rem}
.info-box{border-style:solid;color:#3a3a40;margin-bottom:24px}
.disclaimer{border-style:solid;border-color:rgba(31,58,46,.3);background:rgba(31,58,46,.06);color:#3a3a40}
.media-section{margin-bottom:36px}

/* placeholder */
.placeholder{display:flex;align-items:center;justify-content:center;background:#e7e2d6;color:#a59c86;font-size:.85rem;border:1px solid var(--border)}
.placeholder.portrait{aspect-ratio:4/5;border-radius:18px}
.placeholder.cover{aspect-ratio:2/3;border-radius:12px}
.gallery-item .placeholder,.gallery .placeholder{height:150px;border-radius:12px}

/* news */
.news-card{background:var(--cream-card);border:1px solid var(--border);border-radius:14px;padding:24px;box-shadow:0 8px 24px rgba(18,18,20,.04)}
.news-meta{display:flex;gap:12px;align-items:center;margin-bottom:10px;font-size:.82rem}

/* contact */
.contact-email,.contact-link a,.contact-link{font-family:var(--font-head);font-size:1.05rem;color:var(--ink);text-decoration:none;display:inline-block}
.contact-email{margin-top:8px;color:var(--ink)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.contact-card{background:var(--cream-card);border:1px solid var(--border);border-radius:16px;padding:26px}
.contact-link{display:block;margin-top:10px;font-size:.95rem;color:#3a3a40}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr}}

/* footer */
#site-footer{background:var(--cream);border-top:1px solid var(--border)}
.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:48px 20px}
.footer-name{font-family:var(--font-head);font-size:1.25rem;margin-bottom:4px}
.footer-email{display:inline-block;margin-top:6px;color:#3a3a40;text-decoration:none}
.footer-links{display:flex;flex-wrap:wrap;gap:18px;align-content:flex-start}
.footer-links a{color:rgba(38,38,43,.72);text-decoration:none;font-size:.92rem}
.footer-links a:hover{color:var(--ink)}
.copyright{flex-basis:100%;margin-top:14px;font-size:.8rem}
@media(max-width:680px){.footer-grid{grid-template-columns:1fr}}
