/* Billie Jo Says So
   Palette: blush paper, plum ink, hibiscus pink, guava, lagoon (tiny tropical accent)
   Type: Shrikhand (display, sparingly) + Figtree (everything else) */

:root {
  --blush: #fdf0f2;
  --blush-deep: #f8dfe5;
  --guava: #f6b9c9;
  --hibiscus: #e33f78;
  --hibiscus-ink: #b92a5e;
  --plum: #3b1734;
  --plum-soft: #6e4a66;
  --lagoon: #1f9e95;
  --white: #ffffff;
  --max: 1120px;
  --read: 68ch;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--blush);
  color: var(--plum);
  font-family: "Figtree", system-ui, -apple-system, sans-serif;
  font-size: 18px;
  line-height: 1.6;
}
img { max-width: 100%; display: block; }
a { color: var(--hibiscus-ink); text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
a:hover { color: var(--hibiscus); }
:focus-visible { outline: 3px solid var(--lagoon); outline-offset: 3px; border-radius: 4px; }
p { margin: 0 0 1em; }

h1, h2, .display {
  font-family: "Shrikhand", Georgia, serif;
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -0.005em;
  margin: 0 0 .4em;
  color: var(--plum);
}
h1 { font-size: clamp(2.6rem, 7.4vw, 5.4rem); }
h2 { font-size: clamp(1.9rem, 4.2vw, 2.9rem); }
h3 { font-size: 1.2rem; font-weight: 800; margin: 0 0 .3em; line-height: 1.3; }

.wrap { max-width: var(--max); margin: 0 auto; padding: 0 20px; }
.read { max-width: var(--read); }

/* ---------- header ---------- */
.site-header { padding: 22px 0; }
.site-header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.logo {
  font-family: "Shrikhand", Georgia, serif;
  font-size: 1.45rem; color: var(--plum); text-decoration: none; line-height: 1;
}
.logo:hover { color: var(--hibiscus); }
.nav { display: flex; gap: 6px; flex-wrap: wrap; }
.nav a {
  color: var(--plum); text-decoration: none; font-weight: 600; font-size: .95rem;
  padding: 7px 14px; border-radius: 999px;
}
.nav a:hover { background: var(--blush-deep); color: var(--plum); }
.nav a[aria-current="page"] { background: var(--plum); color: var(--blush); }

/* ---------- buttons ---------- */
.btn {
  display: inline-block; padding: 14px 26px; border-radius: 999px;
  font-weight: 700; font-size: 1rem; text-decoration: none; line-height: 1.2;
  border: 2px solid var(--plum);
}
.btn-hot { background: var(--hibiscus); border-color: var(--hibiscus); color: var(--white); }
.btn-hot:hover { background: var(--hibiscus-ink); border-color: var(--hibiscus-ink); color: var(--white); }
.btn-line { background: transparent; color: var(--plum); }
.btn-line:hover { background: var(--plum); color: var(--blush); }
.btn-row { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }

/* ---------- home hero ---------- */
.hero { position: relative; padding: 40px 0 72px; overflow: hidden; }
.hero-grid { display: grid; gap: 40px; align-items: center; }
@media (min-width: 880px) { .hero-grid { grid-template-columns: 1.35fr 1fr; } }
.hero h1 { max-width: 11ch; }
.hero .lead { font-size: 1.2rem; max-width: 40ch; color: var(--plum-soft); }
.hero .lead strong { color: var(--plum); }

.leaf {
  position: absolute; z-index: 0; pointer-events: none;
  right: -120px; top: -60px; width: 520px; opacity: .55;
}
.hero .wrap { position: relative; z-index: 1; }

.stamp-zone { display: grid; place-items: center; }
.stamp { width: min(300px, 70vw); transform: rotate(-12deg); }
@media (prefers-reduced-motion: no-preference) {
  .stamp { animation: stamp-in .55s cubic-bezier(.2,1.6,.4,1) .35s both; }
  @keyframes stamp-in {
    0%   { transform: rotate(-30deg) scale(1.6); opacity: 0; }
    100% { transform: rotate(-12deg) scale(1);   opacity: 1; }
  }
}

/* ---------- start-here list ---------- */
.start { padding: 64px 0; background: var(--white); border-radius: 40px 40px 0 0; }
.start h2 { margin-bottom: 28px; }
.paths { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--plum); }
.paths li { border-bottom: 2px solid var(--plum); }
.paths a {
  display: grid; grid-template-columns: 1fr; gap: 4px;
  padding: 22px 4px; text-decoration: none; color: var(--plum);
}
@media (min-width: 760px) { .paths a { grid-template-columns: 1.1fr 1.4fr auto; align-items: center; gap: 24px; } }
.paths .path-title { font-family: "Shrikhand", Georgia, serif; font-size: clamp(1.4rem, 3vw, 1.9rem); line-height: 1.1; }
.paths .path-line { color: var(--plum-soft); }
.paths .path-go { font-weight: 700; color: var(--hibiscus-ink); }
.paths a:hover .path-title { color: var(--hibiscus); }

/* ---------- about ---------- */
.about { padding: 8px 0 72px; background: var(--white); }
@media (max-width: 879px) { .polaroid { max-width: 250px; } .stamp { width: 220px; } }
.about-grid { display: grid; gap: 44px; align-items: center; }
@media (min-width: 880px) { .about-grid { grid-template-columns: 340px 1fr; } }
.polaroid {
  background: var(--white); padding: 14px 14px 52px; width: 100%; max-width: 340px;
  box-shadow: 0 18px 40px -18px rgba(59,23,52,.35); transform: rotate(-3deg); position: relative;
  margin: 0 auto;
}
.polaroid .pic { width: 100%; height: auto; object-fit: cover; object-position: 30% 20%;
  aspect-ratio: 1 / 1.1; background: var(--guava);
  display: grid; place-items: center; text-align: center; color: var(--plum); font-weight: 700; padding: 20px;
}
.polaroid .caption {
  position: absolute; bottom: 14px; left: 0; right: 0; text-align: center;
  font-family: "Shrikhand", Georgia, serif; font-size: 1.15rem; color: var(--hibiscus-ink);
}
.social { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 22px; }
.social a {
  border: 2px solid var(--plum); color: var(--plum); text-decoration: none;
  padding: 8px 18px; border-radius: 999px; font-weight: 700; font-size: .95rem;
}
.social a:hover { background: var(--plum); color: var(--blush); }

/* ---------- house rules ---------- */
.rules { padding: 72px 0; background: var(--plum); color: var(--blush); }
.rules h2 { color: var(--guava); }
.rules-list { display: grid; gap: 28px; margin-top: 30px; }
@media (min-width: 760px) { .rules-list { grid-template-columns: repeat(3, 1fr); } }
.rules-list h3 { color: var(--white); font-size: 1.15rem; }
.rules-list p { color: #e9d3e2; margin: 0; }
.rules a { color: var(--guava); }

/* ---------- page hero (inner pages) ---------- */
.page-hero { padding: 36px 0 44px; }
.page-hero .lead { font-size: 1.15rem; color: var(--plum-soft); max-width: 52ch; }
.jump { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 22px; }
.jump a {
  background: var(--white); color: var(--plum); text-decoration: none; font-weight: 700;
  padding: 9px 16px; border-radius: 999px; font-size: .95rem; border: 2px solid var(--blush-deep);
}
.jump a:hover { border-color: var(--hibiscus); color: var(--hibiscus-ink); }

.honest {
  background: var(--blush-deep); border-radius: 18px; padding: 16px 20px;
  font-size: .95rem; color: var(--plum-soft); max-width: 760px;
}
.honest strong { color: var(--plum); }

/* ---------- picks ---------- */
.shelf { background: var(--white); padding: 56px 0 24px; }
.shelf + .shelf { padding-top: 24px; }
.shelf:last-of-type { padding-bottom: 72px; }
.shelf-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px 24px; flex-wrap: wrap; margin-bottom: 8px; }
.shelf-head p { color: var(--plum-soft); margin: 0; max-width: 44ch; }

.items { list-style: none; margin: 0; padding: 0; }
.item {
  display: grid; gap: 6px 28px; padding: 24px 0; border-top: 1.5px solid var(--blush-deep);
}
@media (min-width: 820px) { .item { grid-template-columns: 1fr 1.3fr auto; align-items: start; } }
.item h3 { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.item .what { color: var(--plum-soft); margin: 0; }
.item .why { margin: 0; }
.item .why b { color: var(--hibiscus-ink); }
.must {
  font-size: .78rem; font-weight: 800; color: var(--white); background: var(--hibiscus);
  padding: 3px 10px; border-radius: 999px; transform: rotate(-3deg); display: inline-block;
}
.item .btn { padding: 10px 20px; font-size: .92rem; white-space: nowrap; align-self: center; }
.btn.soon { border-color: var(--blush-deep); color: var(--plum-soft); background: var(--blush); pointer-events: none; font-weight: 600; }

/* ---------- article ---------- */
.post { background: var(--white); padding: 56px 0 80px; }
.post h2 { font-size: clamp(1.6rem, 3.6vw, 2.3rem); margin-top: 1.6em; }
.post ul { padding-left: 1.2em; }
.post li { margin-bottom: .6em; }
.post li::marker { color: var(--hibiscus); }
.byline { color: var(--plum-soft); font-weight: 600; }
.pack { border-left: 4px solid var(--hibiscus); padding: 4px 0 4px 20px; margin: 26px 0; }
.pack p { color: var(--plum-soft); margin-bottom: .5em; }
.nudge {
  background: var(--plum); color: var(--blush); border-radius: 28px;
  padding: 30px 30px 32px; margin: 44px 0 28px;
}
.nudge .display { color: var(--guava); font-size: clamp(1.6rem, 3.6vw, 2.1rem); }
.nudge p { color: #e9d3e2; }

/* ---------- footer ---------- */
.site-footer { background: var(--blush-deep); padding: 40px 0; font-size: .95rem; color: var(--plum-soft); }
.site-footer .wrap { display: flex; justify-content: space-between; gap: 18px; flex-wrap: wrap; align-items: end; }
.site-footer .logo { font-size: 1.6rem; display: block; margin-bottom: 6px; }
.site-footer p { margin: 0 0 4px; }
img.pic { padding: 0 !important; aspect-ratio: 1 / 1.1; }
