:root {
  color-scheme: dark;
  --ink: #0b1110;
  --ink-soft: #101918;
  --forest: #173129;
  --forest-light: #25483c;
  --paper: #f0ecdf;
  --paper-muted: #b9b7ac;
  --gold: #c99b5d;
  --gold-light: #e7c58f;
  --line: rgba(231, 197, 143, 0.22);
  --max: 1240px;
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Inter", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 112px; }
body {
  margin: 0;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; }
button, input { font: inherit; }
cite { font-style: italic; }

.skip-link {
  position: fixed;
  left: 1rem;
  top: -5rem;
  z-index: 100;
  padding: .7rem 1rem;
  background: var(--paper);
  color: var(--ink);
}
.skip-link:focus { top: 1rem; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 88px;
  padding: 1.1rem clamp(1.25rem, 4vw, 4rem);
  border-bottom: 1px solid transparent;
  transition: background .25s ease, border-color .25s ease;
}
.site-header.scrolled {
  background: rgba(11, 17, 16, .92);
  border-color: rgba(231, 197, 143, .14);
  backdrop-filter: blur(14px);
}
.wordmark {
  display: inline-flex;
  align-items: baseline;
  gap: .72rem;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .12em;
}
.wordmark span { font-family: var(--serif); font-size: 1.42rem; font-weight: 600; }
.wordmark small { color: var(--gold); font-size: .62rem; letter-spacing: .25em; }
.site-nav { display: flex; align-items: center; gap: clamp(1rem, 2.8vw, 2.5rem); }
.site-nav a {
  color: var(--paper-muted);
  font-size: .79rem;
  font-weight: 500;
  letter-spacing: .09em;
  text-decoration: none;
  text-transform: uppercase;
}
.site-nav a:hover, .site-nav a:focus-visible { color: var(--paper); }
.site-nav .nav-social { color: var(--gold-light); }
.menu-button { display: none; }

.hero {
  position: relative;
  display: grid;
  min-height: 100svh;
  place-items: center;
  overflow: hidden;
  padding: 9rem clamp(1.25rem, 7vw, 7rem) 6rem;
  background:
    radial-gradient(circle at 78% 45%, rgba(43, 101, 79, .30), transparent 25rem),
    linear-gradient(135deg, #090e0d 0%, #0c1513 52%, #11231e 100%);
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .15;
  background-image: repeating-linear-gradient(112deg, transparent 0 37px, rgba(255,255,255,.035) 38px, transparent 39px);
  pointer-events: none;
}
.hero-copy { position: relative; z-index: 3; width: min(100%, var(--max)); }
.eyebrow {
  margin: 0 0 1.2rem;
  color: var(--gold);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.hero h1 {
  max-width: 940px;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(3.4rem, 7.7vw, 7.6rem);
  font-weight: 500;
  letter-spacing: -.045em;
  line-height: .88;
}
.hero h1 em { color: var(--gold-light); font-weight: 500; }
.hero h1.hero-story {
  max-width: 1000px;
  font-size: clamp(2.9rem, 5.6vw, 5.8rem);
  letter-spacing: -.035em;
  line-height: .96;
  text-wrap: balance;
}
.hero h1.hero-story em { display: block; margin-top: .12em; }
.hero-intro {
  max-width: 690px;
  margin: 2rem 0 0;
  color: #d0cec4;
  font-size: clamp(1.03rem, 1.5vw, 1.22rem);
}
.hero-actions { display: flex; align-items: center; gap: 2rem; margin-top: 2.4rem; }
.button {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  padding: .8rem 1.35rem;
  border: 1px solid var(--gold);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.button-primary { background: var(--gold); color: #111713; }
.button-secondary { background: transparent; color: var(--paper); }
.button-secondary span { margin-left: .5rem; color: var(--gold); }
.button:hover, .button:focus-visible { background: var(--gold-light); color: var(--ink); transform: translateY(-2px); }
.button-secondary:hover span, .button-secondary:focus-visible span { color: var(--ink); }
.text-link {
  color: var(--paper-muted);
  font-size: .84rem;
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
}
.text-link span { margin-left: .5rem; color: var(--gold); }
.text-link:hover, .text-link:focus-visible { color: var(--paper); }
.hero-orbit {
  position: absolute;
  right: -6rem;
  top: 50%;
  width: min(48vw, 650px);
  aspect-ratio: 1;
  border: 1px solid rgba(201, 155, 93, .18);
  border-radius: 50%;
  transform: translateY(-50%);
}
.orbit-two { right: 7rem; width: min(32vw, 430px); border-color: rgba(201, 155, 93, .1); }
.rose-mark {
  position: absolute;
  right: clamp(3rem, 12vw, 12rem);
  top: 50%;
  width: clamp(210px, 25vw, 370px);
  aspect-ratio: 1;
  opacity: .34;
  transform: translateY(-47%) rotate(7deg);
}
.petal {
  position: absolute;
  left: 50%; top: 50%;
  border: 1px solid var(--gold-light);
  border-radius: 55% 8% 55% 8%;
  transform-origin: 0 0;
}
.petal { width: 8rem; height: 8rem; }
.petal-a { transform: rotate(0deg) translate(1.4rem, -1.4rem); }
.petal-b { transform: rotate(60deg) translate(1.4rem, -1.4rem); }
.petal-c { transform: rotate(120deg) translate(1.4rem, -1.4rem); }
.petal-d { transform: rotate(180deg) translate(1.4rem, -1.4rem); }
.petal-e { transform: rotate(240deg) translate(1.4rem, -1.4rem); }
.petal-f { transform: rotate(300deg) translate(1.4rem, -1.4rem); }
.scroll-note {
  position: absolute;
  bottom: 2.4rem;
  left: clamp(1.25rem, 7vw, 7rem);
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 0;
  color: #817f77;
  font-family: var(--serif);
  font-size: .87rem;
  font-style: italic;
}
.scroll-note span { display: block; width: 6rem; height: 1px; background: rgba(201, 155, 93, .38); }

.section { padding: clamp(5.5rem, 10vw, 9rem) clamp(1.25rem, 7vw, 7rem); }
.section-heading { display: grid; grid-template-columns: .55fr 1fr; gap: 2rem 5rem; max-width: var(--max); margin: 0 auto 4.5rem; }
.section-heading .eyebrow { grid-column: 1 / -1; margin-bottom: -.5rem; }
.section-heading h2, .about h2, .newsletter h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(3.1rem, 6vw, 5.6rem);
  font-weight: 500;
  letter-spacing: -.035em;
  line-height: .95;
}
.section-heading > p:last-child { max-width: 590px; margin: .4rem 0 0; color: var(--paper-muted); font-size: 1.05rem; }
.series { background: #0e1715; }
.book-list { max-width: var(--max); margin: auto; border-top: 1px solid var(--line); }
.book-card {
  position: relative;
  display: grid;
  grid-template-columns: 170px 1fr;
  min-height: 310px;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
  transition: background .25s ease;
}
.book-card:hover { background: rgba(255,255,255,.025); }
.book-number {
  display: grid;
  place-items: center;
  border-right: 1px solid var(--line);
  color: rgba(231, 197, 143, .25);
  font-family: var(--serif);
  font-size: 5rem;
}
.book-content { display: grid; grid-template-columns: minmax(270px, .7fr) 1fr auto; align-items: center; gap: 2.5rem; padding: 2.4rem 3rem; }
.book-status { grid-column: 1; align-self: end; margin: 0; color: var(--gold); font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; }
.book-content h3 { grid-column: 1; align-self: start; margin: .15rem 0 0; font-family: var(--serif); font-size: clamp(2.1rem, 3.6vw, 3.4rem); font-weight: 500; line-height: .95; }
.book-content > p:not(.book-status) { grid-column: 2; grid-row: 1 / span 2; max-width: 570px; margin: 0; color: var(--paper-muted); }
.book-content a { grid-column: 3; grid-row: 1 / span 2; white-space: nowrap; color: var(--gold-light); font-size: .76rem; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }
.book-content a:hover, .book-content a:focus-visible { text-decoration: underline; text-underline-offset: 5px; }
.forthcoming { opacity: .78; }

.about { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(3rem, 10vw, 9rem); max-width: calc(var(--max) + 14vw); margin: auto; background: var(--ink); }
.about-title { position: relative; }
.about-title::after { content: ""; display: block; width: 62%; height: 1px; margin-top: 2.5rem; background: linear-gradient(90deg, var(--gold), transparent); }
.about-copy { max-width: 650px; padding-top: .5rem; color: var(--paper-muted); }
.about-copy p { margin: 0 0 1.25rem; }
.about-copy .bio-closing { margin-top: 2rem; }
.about-copy .lead { color: var(--paper); font-family: var(--serif); font-size: clamp(1.45rem, 2.5vw, 2rem); line-height: 1.35; }
.instagram-link {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: .85rem;
  margin-top: 2.5rem;
  padding: 1rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: var(--paper);
  text-decoration: none;
}
.instagram-link:hover, .instagram-link:focus-visible { color: var(--gold-light); }
.instagram-icon { width: 1.4rem; height: 1.4rem; border: 1.5px solid currentColor; border-radius: 5px; box-shadow: inset 0 0 0 5px var(--ink), inset 0 0 0 6.5px currentColor; }

.newsletter { background: var(--forest); }
.newsletter-inner { display: grid; grid-template-columns: 1fr .9fr; align-items: end; gap: clamp(3rem, 8vw, 8rem); max-width: var(--max); margin: auto; }
.newsletter h2 { max-width: 650px; }
.newsletter h2 + p { max-width: 620px; margin: 1.6rem 0 0; color: #c6cec9; }
.signup-form { padding: 2rem; border: 1px solid rgba(240,236,223,.24); background: rgba(11,17,16,.16); }
.field-row label { display: block; margin-bottom: .6rem; color: var(--gold-light); font-size: .72rem; letter-spacing: .13em; text-transform: uppercase; }
.input-wrap { display: flex; border-bottom: 1px solid rgba(240,236,223,.52); }
.input-wrap:focus-within { border-color: var(--gold-light); }
.input-wrap input { width: 100%; min-width: 0; padding: .85rem .25rem; border: 0; outline: none; background: transparent; color: var(--paper); font-size: 1rem; }
.input-wrap input::placeholder { color: rgba(240,236,223,.44); }
.input-wrap button { flex: none; padding: .85rem .25rem .85rem 1.2rem; border: 0; background: transparent; color: var(--gold-light); cursor: pointer; font-size: .73rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.input-wrap button:hover, .input-wrap button:focus-visible { color: #fff; }
.input-wrap .loading[hidden] { display: none; }
.form-note { margin: .8rem 0 0; color: rgba(240,236,223,.53); font-size: .75rem; }
.newsletter-success h3 {
  margin: 0 0 .4rem;
  color: var(--gold-light);
  font-family: var(--serif);
  font-size: 2rem;
  font-weight: 500;
}
.newsletter-success p { margin: 0; color: var(--paper); }

.site-footer { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 2rem; padding: 2.2rem clamp(1.25rem, 4vw, 4rem); border-top: 1px solid rgba(255,255,255,.06); background: #080d0c; color: #777b75; font-size: .72rem; }
.site-footer p { margin: 0; text-align: center; }
.footer-mark { color: var(--paper); }
.footer-links { display: flex; justify-content: flex-end; gap: 1.5rem; }
.footer-links a { text-decoration: none; }
.footer-links a:hover, .footer-links a:focus-visible { color: var(--paper); }

@media (max-width: 980px) {
  .hero h1 { max-width: 760px; }
  .rose-mark { right: -3rem; opacity: .18; }
  .book-card { grid-template-columns: 90px 1fr; }
  .book-content { grid-template-columns: 1fr auto; }
  .book-content > p:not(.book-status) { grid-column: 1 / -1; grid-row: auto; }
  .book-content a { grid-column: 2; grid-row: 1 / span 2; }
  .newsletter-inner { grid-template-columns: 1fr; align-items: start; }
}

@media (max-width: 760px) {
  .site-header { min-height: 72px; }
  .wordmark span { font-size: 1.2rem; }
  .menu-button {
    position: relative;
    z-index: 22;
    display: grid;
    width: 44px;
    height: 44px;
    place-content: center;
    gap: 6px;
    border: 0;
    background: transparent;
    color: var(--paper);
    cursor: pointer;
  }
  .menu-button span:not(.sr-only) { display: block; width: 24px; height: 1px; background: currentColor; transition: transform .2s ease; }
  .menu-button[aria-expanded="true"] span:nth-child(2) { transform: translateY(3.5px) rotate(45deg); }
  .menu-button[aria-expanded="true"] span:nth-child(3) { transform: translateY(-3.5px) rotate(-45deg); }
  .site-nav {
    position: fixed;
    inset: 0;
    display: none;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 1.6rem;
    padding: 5rem 2rem;
    background: rgba(8, 13, 12, .98);
  }
  .site-nav.open { display: flex; }
  .site-nav a { font-family: var(--serif); font-size: 2.3rem; letter-spacing: 0; text-transform: none; }
  .hero { place-items: center start; padding-top: 8.5rem; }
  .hero h1 { font-size: clamp(3.25rem, 15vw, 5.2rem); line-height: .9; }
  .hero-intro { max-width: 94%; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 1.3rem; }
  .hero-orbit { right: -13rem; width: 520px; }
  .orbit-two { right: -5rem; width: 350px; }
  .rose-mark { right: -6rem; top: 60%; width: 250px; }
  .scroll-note { display: none; }
  .section-heading { grid-template-columns: 1fr; }
  .book-card { grid-template-columns: 58px 1fr; min-height: 0; }
  .book-number { align-items: start; padding-top: 2rem; font-size: 2.4rem; }
  .book-content { display: block; padding: 2rem 1.2rem 2.4rem; }
  .book-content h3 { margin: .5rem 0 1.2rem; }
  .book-content > p:not(.book-status) { margin-bottom: 1.5rem; }
  .about { grid-template-columns: 1fr; }
  .about-title::after { width: 100%; }
  .newsletter .signup-form { padding: 1.4rem; }
  .site-footer { grid-template-columns: 1fr; justify-items: start; }
  .site-footer p { text-align: left; }
  .footer-links { justify-content: flex-start; }
}

@media (max-width: 430px) {
  .hero-actions .button { width: 100%; }
  .input-wrap { display: block; border-bottom: 0; }
  .input-wrap input { border-bottom: 1px solid rgba(240,236,223,.52); }
  .input-wrap button { width: 100%; margin-top: .9rem; padding: .9rem 1rem; border: 1px solid var(--gold); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}

.art-section{background:linear-gradient(180deg,#101918,#0c1513);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.art-section .section-heading{max-width:760px}
.art-grid{display:grid;grid-template-columns:repeat(3,minmax(0,360px));justify-content:center;gap:22px;max-width:1124px;margin:3rem auto 0}
.art-tile{margin:0;background:#101b19;border:1px solid rgba(231,197,143,.18);overflow:hidden}
.art-tile img{display:block;width:100%;height:440px;object-fit:contain;object-position:center;background:#101b19}
.art-tile:nth-child(1) img{object-position:center 35%}
.art-tile:nth-child(3) img{object-position:center 35%}
.art-tile figcaption{padding:1.1rem 1.15rem 1.3rem;display:flex;flex-direction:column;gap:.4rem}
.art-tile figcaption strong{font:600 1.55rem/1.1 var(--serif);color:var(--paper)}
.art-tile figcaption span{font-size:.69rem;letter-spacing:.055em;color:var(--gold-light)}
.art-footer{text-align:center;color:var(--gold);font-family:var(--serif);font-size:1.2rem;margin:2.6rem auto 0}
@media(max-width:850px){.art-grid{grid-template-columns:repeat(2,minmax(0,360px))}.art-tile img{height:400px}}
@media(max-width:540px){.art-grid{grid-template-columns:minmax(0,360px)}.art-tile img{height:440px}}

/* v4.1: secondary paperback retailer links */
.book-content .book-retailers { grid-column: 3; grid-row: 1 / span 2; display: flex; flex-direction: column; align-items: flex-start; gap: .8rem; }
.book-content .book-retailers a { grid-column: auto; grid-row: auto; white-space: nowrap; color: var(--gold-light); font-size: .76rem; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }
.book-content .book-retailers a.retailer-secondary { color: var(--paper-muted); font-size: .7rem; }
.book-content .book-retailers a:hover, .book-content .book-retailers a:focus-visible { text-decoration: underline; text-underline-offset: 5px; }
@media (max-width: 980px) { .book-content .book-retailers { grid-column: 2; grid-row: 1 / span 2; } }
@media (max-width: 760px) { .book-content .book-retailers { margin-top: .2rem; } }


/* v4.1 gallery alignment: equal image stages, consistent card and caption edges */
.art-tile{display:flex;flex-direction:column;min-width:0}
.art-image-stage{height:440px;display:flex;align-items:center;justify-content:center;background:#101b19;border-bottom:1px solid rgba(231,197,143,.12);overflow:hidden}
.art-image-stage img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.art-tile figcaption{margin-top:auto;min-height:112px;box-sizing:border-box}
@media(max-width:850px){.art-image-stage{height:400px}}
@media(max-width:540px){.art-image-stage{height:440px}}

/* Add breathing room above the Eyrie artwork without cropping or shifting captions. */
.art-tile:last-child .art-image-stage{padding-top:16px;box-sizing:border-box}

/* v4.1 portrait gallery: one shared layout for local preview and deployed site. */
.art-grid{grid-template-columns:repeat(3,minmax(0,360px));align-items:stretch}
.art-tile{display:flex;flex-direction:column;min-width:0}
.art-image-stage,.art-tile:last-child .art-image-stage{
  width:100%;height:auto;aspect-ratio:4 / 5;box-sizing:border-box;
  padding:14px;display:flex;align-items:center;justify-content:center;
  background:#101b19;border-bottom:1px solid rgba(231,197,143,.12);overflow:hidden;
}
.art-image-stage img,.art-tile img,.art-tile:nth-child(1) img,.art-tile:nth-child(3) img{
  display:block;width:100%;height:100%;max-width:100%;max-height:100%;
  object-fit:contain;object-position:center;background:transparent;
}
.art-tile figcaption{margin-top:0;min-height:112px;box-sizing:border-box}
@media(max-width:850px){.art-grid{grid-template-columns:repeat(2,minmax(0,360px))}.art-image-stage{height:auto}}
@media(max-width:540px){.art-grid{grid-template-columns:minmax(0,360px)}.art-image-stage{height:auto}}

/* v4.2: cover-led published book entries */
.book-card.book-one,.book-card.book-two { min-height:0; }
.book-card.book-one .book-content,.book-card.book-two .book-content {display:grid;grid-template-columns:clamp(145px,19vw,225px) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,4vw,3.8rem);padding:2.5rem 3rem;}
.book-cover-wrap {width:100%;min-width:0;}
.book-cover {display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;box-shadow:0 16px 35px rgba(0,0,0,.3);}
.book-details {display:flex;flex-direction:column;align-items:flex-start;gap:1.05rem;min-width:0;}
.book-details .book-status {margin:0;align-self:auto;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;}
.book-details h3 {margin:0;font-family:var(--serif);font-size:clamp(2.2rem,3.7vw,3.6rem);font-weight:500;line-height:1;}
.book-details > p:not(.book-status) {margin:0;color:var(--paper-muted);max-width:620px;}
.book-details .book-retailers {display:flex;gap:1rem 1.6rem;flex-wrap:wrap;margin-top:.45rem;}
.book-details .book-retailers a {color:var(--gold-light);font-size:.75rem;letter-spacing:.07em;text-transform:uppercase;text-decoration:none;white-space:nowrap;}
.book-details .book-retailers a:hover {text-decoration:underline;text-underline-offset:4px;}
@media(max-width:980px){.book-card.book-one .book-content,.book-card.book-two .book-content {grid-template-columns:clamp(125px,24vw,180px) minmax(0,1fr);padding:2rem;gap:1.6rem;}}
@media(max-width:600px){.book-card.book-one .book-content,.book-card.book-two .book-content {display:flex;flex-direction:column;align-items:flex-start;padding:1.8rem 1.15rem 2rem;gap:1.5rem;}.book-cover-wrap{max-width:220px;align-self:center;}.book-details{gap:.9rem;}.book-details h3{font-size:clamp(2.1rem,9vw,3rem);}.book-details .book-retailers{flex-direction:column;gap:.7rem;}}
