/* Foxed Pages — shared styles */

:root {
  --fp-cream: #F5F0E8;
  --fp-ink: #1A1714;
  --fp-accent: #9B6A3F;
  --fp-panel: #EDE6D8;
  --fp-hairline: #D8CFBF;
  --fp-ink-soft: #574F45;
  --fp-ink-faint: #6B6359;
  --fp-dark-border: #3A332B;
  --fp-dark-hairline: #2A2520;
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  background: var(--fp-cream);
  color: var(--fp-ink);
  font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
  scroll-behavior: smooth;
}
img { max-width: 100%; }
a { color: inherit; }

.fp-serif {
  font-family: Newsreader, Georgia, serif;
}

/* ---------- reveal-on-scroll ---------- */
.fp-anim [data-fp-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 1s cubic-bezier(.16,1,.3,1), transform 1s cubic-bezier(.16,1,.3,1);
}
.fp-anim [data-fp-reveal][data-fp-in] {
  opacity: 1;
  transform: none;
}

@keyframes fp-cue {
  0%, 100% { transform: translateY(0); opacity: .55; }
  50% { transform: translateY(8px); opacity: 1; }
}
.fp-scroll-cue {
  margin-top: 58px;
  width: 1px;
  height: 46px;
  background: linear-gradient(var(--fp-accent), transparent);
  animation: fp-cue 2.4s ease-in-out infinite;
}

/* ---------- buttons ---------- */
.fp-btn {
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: 500;
  padding: 14px 28px;
  border-radius: 980px;
  border: none;
  cursor: pointer;
  font-family: inherit;
  transition: opacity .2s ease, border-color .2s ease;
}
.fp-btn-primary {
  color: var(--fp-cream);
  background: var(--fp-accent);
}
.fp-btn-primary:hover { opacity: .9; }
.fp-btn-outline {
  color: var(--fp-accent);
  border: 1px solid var(--fp-hairline);
  background: transparent;
}
.fp-btn-outline:hover { border-color: var(--fp-accent); }
.fp-btn-ghost-dark {
  color: var(--fp-cream);
  border: 1px solid #4A4338;
  background: transparent;
}
.fp-btn-ghost-dark:hover { border-color: #6A6052; }
.fp-btn-cream {
  color: var(--fp-ink);
  background: var(--fp-cream);
}
.fp-btn-cream:hover { opacity: .88; }
.fp-btn-sm { font-size: 14px; padding: 9px 18px; }

/* ---------- nav ---------- */
.fp-nav-wrap {
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: saturate(180%) blur(18px);
  -webkit-backdrop-filter: saturate(180%) blur(18px);
  background: rgba(245, 240, 232, .78);
  border-bottom: 1px solid var(--fp-hairline);
}
.fp-nav {
  max-width: 1160px;
  margin: 0 auto;
  height: 60px;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.fp-logo {
  display: flex;
  align-items: center;
  gap: 11px;
  text-decoration: none;
  color: var(--fp-ink);
}
.fp-logo img { display: block; height: 30px; width: auto; }
.fp-logo span {
  font-family: Newsreader, Georgia, serif;
  font-weight: 600;
  font-size: 17px;
  letter-spacing: .12em;
}
.fp-nav-links {
  display: flex;
  align-items: center;
  gap: 30px;
}
.fp-nav-link {
  text-decoration: none;
  color: #3A352F;
  font-size: 14px;
  font-weight: 500;
  transition: color .2s ease;
}
.fp-nav-link:hover, .fp-nav-link.is-active { color: var(--fp-ink); font-weight: 600; }
.fp-nav-cta { color: var(--fp-cream); background: var(--fp-accent); }

@media (max-width: 720px) {
  .fp-nav-links { gap: 16px; }
  .fp-nav-link { display: none; }
  .fp-nav-link.fp-nav-cta { display: inline-flex; }
}

/* ---------- footer ---------- */
.fp-footer {
  background: var(--fp-ink);
  color: #9B9286;
  padding: 70px 24px 56px;
}
.fp-footer-grid {
  max-width: 1160px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 48px;
}
.fp-footer-logo {
  display: flex;
  align-items: center;
  gap: 11px;
  text-decoration: none;
  color: var(--fp-cream);
  margin-bottom: 18px;
}
.fp-footer-logo img { display: block; height: 28px; width: auto; }
.fp-footer-logo span {
  font-family: Newsreader, Georgia, serif;
  font-weight: 600;
  font-size: 16px;
  letter-spacing: .12em;
}
.fp-footer p.fp-footer-tagline { font-size: 13.5px; line-height: 1.6; max-width: 240px; margin: 0; }
.fp-footer-heading {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #6E665B;
  margin: 0 0 16px;
}
.fp-footer-link {
  display: block;
  text-decoration: none;
  color: #C8BFB1;
  font-size: 14px;
  margin-bottom: 11px;
  transition: color .2s ease;
}
.fp-footer-link:hover { color: var(--fp-cream); }
.fp-footer-bottom {
  max-width: 1160px;
  margin: 50px auto 0;
  padding-top: 26px;
  border-top: 1px solid var(--fp-dark-hairline);
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 13px;
  color: #6E665B;
}
@media (max-width: 760px) {
  .fp-footer-grid { grid-template-columns: 1fr 1fr; }
}

/* ---------- disclosure bar ---------- */
.fp-disclosure-bar {
  background: var(--fp-ink);
  color: #B9AE9E;
  padding: 30px 24px;
  border-bottom: 1px solid var(--fp-dark-hairline);
}
.fp-disclosure-bar p {
  max-width: 880px;
  margin: 0 auto;
  text-align: center;
  font-size: 13.5px;
  line-height: 1.55;
}
.fp-disclosure-bar a { color: #B98A5F; text-decoration: none; }
.fp-disclosure-bar a:hover { text-decoration: underline; }

/* ---------- shared section bits ---------- */
.fp-eyebrow {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--fp-accent);
  margin: 0 0 22px;
}
.fp-cover-placeholder {
  border: 1px solid var(--fp-hairline);
  border-radius: 6px;
  background: repeating-linear-gradient(135deg, var(--fp-panel) 0, var(--fp-panel) 11px, #E4DAC8 11px, #E4DAC8 22px);
  display: flex;
  align-items: flex-end;
  padding: 16px;
  box-shadow: 0 24px 50px -34px rgba(26,23,20,.45);
}
.fp-cover-placeholder.is-dark {
  border-color: var(--fp-dark-border);
  background: repeating-linear-gradient(135deg, #2A2520 0, #2A2520 11px, #322C25 11px, #322C25 22px);
  box-shadow: 0 36px 70px -34px rgba(0,0,0,.7);
}
.fp-cover-label {
  font-family: 'SF Mono', ui-monospace, Menlo, monospace;
  font-size: 11px;
  letter-spacing: .03em;
  color: #8A8073;
  background: rgba(245,240,232,.72);
  padding: 5px 9px;
  border-radius: 4px;
}
.fp-cover-placeholder.is-dark .fp-cover-label {
  color: #B9AE9E;
  background: rgba(26,23,20,.6);
}

/* ---------- book launch (list page) ---------- */
.fp-book {
  padding: clamp(72px, 9vw, 118px) 24px;
}
.fp-book.is-dark { background: var(--fp-ink); color: var(--fp-cream); }
.fp-book.is-light { background: var(--fp-cream); color: var(--fp-ink); }
.fp-book-inner {
  max-width: 1080px;
  margin: 0 auto;
  display: flex;
  gap: clamp(36px, 5vw, 68px);
  align-items: center;
  flex-wrap: wrap;
}
.fp-book.is-flip .fp-book-inner { flex-direction: row-reverse; }
.fp-book-cover {
  width: clamp(186px, 23vw, 272px);
  flex: 0 0 auto;
  margin: 0 auto;
}
.fp-book-cover .fp-cover-placeholder { aspect-ratio: 2/3; width: 100%; }
.fp-book-copy { flex: 1 1 340px; min-width: 280px; }
.fp-book-rank {
  font-family: Newsreader, Georgia, serif;
  font-weight: 600;
  font-size: clamp(38px, 5.4vw, 68px);
  line-height: .95;
  letter-spacing: -0.02em;
  color: var(--fp-accent);
}
.fp-book-pitch {
  font-family: Newsreader, Georgia, serif;
  font-weight: 600;
  font-size: clamp(26px, 3.3vw, 42px);
  letter-spacing: -0.02em;
  line-height: 1.08;
  margin: 16px 0 18px;
}
.fp-book-byline {
  font-family: Newsreader, Georgia, serif;
  font-style: italic;
  font-size: clamp(18px, 2vw, 22px);
  line-height: 1.3;
  margin: 0 0 20px;
}
.fp-book-byline .fp-book-author { font-style: normal; }
.fp-book.is-dark .fp-book-byline .fp-book-author { color: #B9AE9E; }
.fp-book.is-light .fp-book-byline .fp-book-author { color: var(--fp-ink-soft); }
.fp-book-blurb {
  font-size: 17px;
  line-height: 1.62;
  max-width: 520px;
  margin: 0 0 30px;
}
.fp-book.is-dark .fp-book-blurb { color: #B9AE9E; }
.fp-book.is-light .fp-book-blurb { color: var(--fp-ink-soft); }
