:root{
  --ink:#1c1a17; --ink-soft:#4a4540; --line:#e2ddd5;
  --paper:#fbf9f6; --paper-2:#f3efe8; --accent:#8a5a2b; --accent-deep:#5f3d1c;
  --max:1080px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);
  font:400 17px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased}
h1,h2,h3,.serif{font-family:Georgia,"Iowan Old Style","Times New Roman",serif;font-weight:600;line-height:1.2}
a{color:var(--accent-deep)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}

/* header */
header{border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:20}
.bar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--ink)}
.brand .mark{flex:0 0 auto;display:block}
.brand .bwrap{font-family:Georgia,serif;font-size:21px;font-weight:600;letter-spacing:-.2px;line-height:1.15}
.brand .cg{display:block;font-family:inherit;font-size:13px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--accent);margin-top:5px}
@media(max-width:620px){.brand .mark{width:29px;height:29px}}
nav{display:flex;gap:26px;flex-wrap:wrap}
nav a{text-decoration:none;color:var(--ink-soft);font-size:15px;padding:4px 0;border-bottom:1px solid transparent}
nav a:hover,nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent)}

/* hero */
.hero{padding:76px 0 64px;border-bottom:1px solid var(--line)}
.hero h1{font-size:clamp(32px,5vw,50px);max-width:17ch;letter-spacing:-.5px}
.hero .lede{margin-top:22px;font-size:clamp(18px,2.2vw,21px);color:var(--ink-soft);max-width:56ch}
.kicker{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);
  font-weight:600;margin-bottom:18px}

/* sections */
section{padding:64px 0;border-bottom:1px solid var(--line)}
section:last-of-type{border-bottom:0}
section h2{font-size:clamp(24px,3.2vw,32px);letter-spacing:-.3px}
section h2+.sub{margin-top:12px;color:var(--ink-soft);max-width:60ch}
.tint{background:var(--paper-2)}

/* directions */
.dirs{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px;margin-top:36px}
.dir{background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:30px}
.tint .dir{background:var(--paper)}
.dir h3{font-size:20px;margin-bottom:10px}
.dir p{color:var(--ink-soft);font-size:16px}

/* book list */
.books{margin-top:34px;display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.book{background:var(--paper);padding:26px 28px;display:grid;
  grid-template-columns:1fr auto;gap:20px;align-items:start}
.book h3{font-size:19px;margin-bottom:4px}
.book .meta{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);
  font-weight:600;margin-bottom:9px}
.book p{color:var(--ink-soft);font-size:16px;max-width:62ch}
.book .status{font-size:14px;color:var(--ink-soft);font-style:italic;margin-top:8px}
.btn{display:inline-block;white-space:nowrap;text-decoration:none;font-size:15px;font-weight:600;
  padding:11px 20px;border-radius:2px;background:var(--ink);color:var(--paper);border:1px solid var(--ink)}
.btn:hover{background:var(--accent-deep);border-color:var(--accent-deep)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn.ghost:hover{background:var(--paper-2);color:var(--ink)}
.btn.soon{background:transparent;color:var(--ink-soft);border-style:dashed;cursor:default}

/* group heading */
.group{margin-top:56px}
.group:first-of-type{margin-top:36px}
.group>h3{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);
  padding-bottom:10px;border-bottom:2px solid var(--accent);display:inline-block}
.group>p.note{margin-top:14px;color:var(--ink-soft);max-width:62ch}

/* prose */
.prose{max-width:66ch}
.prose p{margin-top:18px;color:var(--ink-soft)}
.prose p.first{font-size:19px;color:var(--ink)}
.fill{background:#fff3f3;border-left:3px solid #c0392b;padding:14px 18px;margin-top:20px;
  font-size:15px;color:#7b241c}
.fill b{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:5px}

/* signup */
.signup{background:var(--ink);color:var(--paper);border-radius:3px;padding:44px 40px;margin-top:36px}
.signup h2,.signup h3{color:var(--paper)}
.signup p{color:#cfc8bf;margin-top:14px;max-width:56ch}
.form{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap}
.form input{flex:1 1 260px;padding:13px 15px;border:1px solid #4a4540;background:#2a2724;
  color:var(--paper);border-radius:2px;font-size:16px}
.form input::placeholder{color:#8a827a}
.form button{padding:13px 26px;border:0;border-radius:2px;background:var(--accent);
  color:#fff;font-size:15px;font-weight:600;cursor:pointer}
.form button:hover{background:#a06a33}
.finep{font-size:13px;color:#8a827a;margin-top:16px}

/* footer */
footer{background:var(--paper-2);border-top:1px solid var(--line);padding:48px 0 36px;margin-top:0}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:30px}
footer h4{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin-bottom:12px}
footer a,footer p{color:var(--ink-soft);font-size:15px;text-decoration:none;display:block;margin-bottom:7px}
footer a:hover{color:var(--accent-deep)}
.legal{margin-top:34px;padding-top:22px;border-top:1px solid var(--line);
  font-size:13px;color:var(--ink-soft);max-width:70ch}
@media(max-width:620px){
  .bar{flex-direction:column;align-items:flex-start;gap:12px}
  .book{grid-template-columns:1fr}
  .hero{padding:52px 0 44px}
  .signup{padding:32px 24px}
}

/* ---------- cover system ---------- */
.cover{position:relative;width:100%;border-radius:2px;overflow:hidden;line-height:0;
  box-shadow:0 1px 2px rgba(28,26,23,.12),0 12px 28px -10px rgba(28,26,23,.34);
  background:var(--paper-2)}
/* covers show at their own proportions - never cropped */
.cover img{width:100%;height:auto;display:block}
/* typographic fallback cover, used where we hold no artwork */
.cover.set{aspect-ratio:2/3;display:flex;flex-direction:column;justify-content:space-between;
  padding:20px 18px;background:linear-gradient(160deg,#2b2723,#1c1a17 60%);color:#f3efe8}
.cover.set.warm{background:linear-gradient(160deg,#7a4a20,#4a2c12 60%)}
.cover.set.sage{background:linear-gradient(160deg,#3c4a3f,#232c26 60%)}
.cover.set.slate{background:linear-gradient(160deg,#33414f,#1e262e 60%)}
.cover.set .ct{font-family:Georgia,serif;font-size:17px;line-height:1.25;letter-spacing:-.2px}
.cover.set .cs{font-size:10px;letter-spacing:.16em;text-transform:uppercase;opacity:.62;margin-top:8px}
.cover.set .cb{font-size:10px;letter-spacing:.2em;text-transform:uppercase;opacity:.55}
.cover.set::after{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;
  background:rgba(0,0,0,.28);box-shadow:inset -1px 0 0 rgba(255,255,255,.09)}

/* book rows get a cover column */
.book{grid-template-columns:104px 1fr auto}
.book .covwrap{width:104px}
@media(max-width:620px){.book{grid-template-columns:88px 1fr}.book .covwrap{width:88px}
  .book .btn,.book .soon{grid-column:1/-1;justify-self:start}}

/* hero shelf */
.shelf{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:44px;align-items:end}
.shelf .covwrap:nth-child(even){transform:translateY(-10px)}
@media(max-width:720px){.shelf{grid-template-columns:repeat(3,1fr)}
  .shelf .covwrap:nth-child(n+4){display:none}}

/* feature block */
.feature{display:grid;grid-template-columns:200px 1fr;gap:40px;align-items:center;margin-top:32px}
@media(max-width:620px){.feature{grid-template-columns:1fr;gap:24px}}

/* portrait / about visual */
.rule-art{height:2px;background:linear-gradient(90deg,var(--accent),transparent);margin:34px 0;border:0}
.pills{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}
.pill{border:1px solid var(--line);background:var(--paper);border-radius:100px;
  padding:7px 15px;font-size:14px;color:var(--ink-soft)}
