:root{
  --cream:#faf6ef; --paper:#fffdf8; --ink:#2b2620; --soft:#6b6156;
  --sage:#5d7a63; --sage-dark:#47604c; --gold:#c9a227; --line:#e4dccf;
  --card:#ffffff;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:Georgia,'Times New Roman',serif;
  background:var(--cream); color:var(--ink);
  font-size:19px; line-height:1.7;
}
.wrap{max-width:760px;margin:0 auto;padding:0 24px}

/* header */
header.site{
  padding:28px 0 22px;border-bottom:1px solid var(--line);
  background:var(--paper);
}
header.site .wrap{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px}
.logo{font-size:1.5rem;font-weight:bold;letter-spacing:.5px}
.logo span{color:var(--sage)}
.tagline{font-size:.95rem;color:var(--soft);font-style:italic}

/* hero */
.hero{padding:64px 0 56px;background:var(--paper);border-bottom:1px solid var(--line)}
.hero h1{font-size:2.4rem;line-height:1.25;margin-bottom:18px}
.hero p{font-size:1.15rem;color:var(--soft);max-width:600px;margin-bottom:28px}
.btn{
  display:inline-block;background:var(--sage);color:#fff;text-decoration:none;
  padding:16px 32px;border-radius:8px;font-size:1.1rem;font-weight:bold;
}
.btn:hover{background:var(--sage-dark)}
.btn.secondary{background:transparent;color:var(--sage-dark);border:2px solid var(--sage);margin-left:12px}
.btn.secondary:hover{background:var(--sage);color:#fff}

/* sections */
section{padding:52px 0}
section+section{border-top:1px solid var(--line)}
h2{font-size:1.7rem;margin-bottom:8px}
.kicker{color:var(--gold);font-size:.85rem;text-transform:uppercase;letter-spacing:2px;margin-bottom:6px}
.lede{color:var(--soft);margin-bottom:28px;max-width:620px}

/* cards */
.card{
  background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:26px 28px;margin-bottom:18px;display:block;text-decoration:none;color:inherit;
}
a.card:hover{border-color:var(--sage);box-shadow:0 4px 18px rgba(0,0,0,.06)}
.card h3{font-size:1.25rem;margin-bottom:6px}
.card p{color:var(--soft);font-size:1rem}
.badge{display:inline-block;font-size:.75rem;letter-spacing:1px;text-transform:uppercase;
  padding:4px 10px;border-radius:20px;margin-bottom:10px}
.badge.start{background:#eef4ee;color:var(--sage-dark);border:1px solid var(--sage)}
.badge.soon{background:#f4efe3;color:#8a7a45;border:1px solid var(--gold)}
.card.soon{opacity:.75}

/* about / winston */
.portrait-note{font-style:italic;color:var(--soft);font-size:.95rem;margin-top:14px}
.winston-portrait{width:100%;max-width:520px;border-radius:12px;border:1px solid var(--line);margin:6px 0 22px;display:block}
.kristine-portrait{width:100%;max-width:340px;border-radius:12px;border:1px solid var(--line);margin:6px 0 22px;display:block}
blockquote{
  border-left:4px solid var(--sage);padding:6px 0 6px 20px;margin:20px 0;
  font-style:italic;color:var(--soft);
}

/* promise list */
ul.promise{list-style:none;margin-top:8px}
ul.promise li{padding:12px 0 12px 34px;position:relative;border-bottom:1px dashed var(--line)}
ul.promise li:before{content:"✓";position:absolute;left:4px;color:var(--sage);font-weight:bold}
ul.promise li.never:before{content:"✗";color:#a33}
ul.promise li:last-child{border-bottom:none}

.yt-line{margin-top:20px}
.yt-link{color:var(--sage-dark);font-weight:bold;text-decoration:none;border-bottom:2px solid var(--gold);padding-bottom:2px}
.yt-link:hover{color:var(--gold)}

/* episode pairing on guide pages */
.episode-pair{display:flex;gap:22px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin:0 0 32px;flex-wrap:wrap}
.episode-pair img{width:220px;max-width:100%;border-radius:8px;border:1px solid var(--line)}
.episode-pair .ep-text{flex:1;min-width:220px}
.episode-pair .ep-text h3{font-size:1.05rem;margin-bottom:4px}
.episode-pair .ep-text p{font-size:.95rem;color:var(--soft);margin-bottom:8px}

/* footer */
footer{padding:40px 0 60px;color:var(--soft);font-size:.9rem;text-align:center}

/* guide page */
.guide-hero{background:var(--paper);border-bottom:1px solid var(--line);padding:48px 0 36px}
.guide-hero h1{font-size:2rem;line-height:1.3}
.back{display:inline-block;margin-bottom:18px;color:var(--sage-dark);text-decoration:none;font-size:.95rem}
.back:hover{text-decoration:underline}
.step{display:flex;gap:18px;margin-bottom:26px}
.step .num{
  flex:0 0 42px;height:42px;border-radius:50%;background:var(--sage);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:1.1rem;
}
.step .body{flex:1}
.step .body h3{font-size:1.1rem;margin-bottom:4px}
.promptbox{
  background:#f4f1e9;border:1px dashed var(--gold);border-radius:10px;
  padding:18px 20px;margin:14px 0;font-size:1.02rem;position:relative;
}
.promptbox .label{font-size:.72rem;letter-spacing:2px;text-transform:uppercase;color:#8a7a45;display:block;margin-bottom:6px}
.warnbox{background:#fbeeee;border:1px solid #e0b8b8;border-radius:10px;padding:18px 20px;margin:26px 0}
.warnbox h3{color:#a33;font-size:1.05rem;margin-bottom:6px}
.goodbox{background:#eef4ee;border:1px solid #b9d0bf;border-radius:10px;padding:18px 20px;margin:26px 0}
.goodbox h3{color:var(--sage-dark);font-size:1.05rem;margin-bottom:6px}
@media (max-width:560px){
  .hero h1{font-size:1.8rem}
  body{font-size:18px}
  .btn.secondary{margin-left:0;margin-top:10px}
}
