/* Where It All Began — shared styles. Mobile first: most people open this
   from a text message, on a phone. It has to read well there first. */
:root {
  --bg:#fbf7f0; --surface:#fffdf9; --ink:#22190f; --body:#3b2f22;
  --muted:#7a6a56; --rule:#e3d8c6; --gold:#9a6f1f; --gold-soft:#f3e6c8; --max:42rem;
}
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--body);
  font-family:Palatino,"Palatino Linotype","Iowan Old Style",Georgia,serif;
  font-size:1.125rem; line-height:1.62; }
.wrap { max-width:var(--max); margin:0 auto; padding:0 1.25rem; }
.masthead { padding:2.25rem 0 1.5rem; border-bottom:1px solid var(--rule); }
.kicker { font-size:.75rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin:0 0 .7rem; }
.kicker a { color:var(--muted); text-decoration:none; }
.kicker a:hover { color:var(--gold); }
h1 { font-size:clamp(1.85rem,6.5vw,2.6rem); line-height:1.1; margin:0 0 .5rem; color:var(--ink); font-weight:600; }
.sub { font-size:clamp(1.02rem,3.4vw,1.2rem); color:var(--muted); margin:0; font-style:italic; }
h2 { font-size:1.38rem; line-height:1.25; color:var(--ink); margin:2.4rem 0 .7rem; font-weight:600; }
h3 { font-size:1.08rem; color:var(--ink); margin:1.7rem 0 .4rem; font-weight:600; }
p { margin:0 0 1.1rem; }
a { color:var(--gold); text-underline-offset:.18em; }
a:hover { color:var(--ink); }
.lede { font-size:clamp(1.18rem,3.9vw,1.36rem); line-height:1.45; color:var(--ink); }
em.heb { font-style:italic; color:var(--gold); font-weight:600; }
hr { border:0; border-top:1px solid var(--rule); margin:2.4rem 0; }
blockquote { margin:1.4rem 0; padding:0 0 0 1.1rem; border-left:3px solid var(--gold-soft);
  color:var(--ink); font-style:italic; }
.card { background:var(--surface); border:1px solid var(--rule); border-radius:.5rem;
  padding:1.4rem 1.3rem; margin:1.7rem 0; }
.card.accent { border-left:4px solid var(--gold); background:linear-gradient(180deg,#fffdf8,#fdf8ee); }
.card h2,.card h3 { margin-top:0; }
.card > :last-child { margin-bottom:0; }
.invite { counter-reset:inv; list-style:none; padding:0; margin:1.4rem 0; }
.invite li { position:relative; padding:0 0 0 3rem; margin:0 0 1.6rem; counter-increment:inv; }
.invite li::before { content:counter(inv); position:absolute; left:0; top:.1rem;
  width:2rem; height:2rem; border-radius:50%; background:var(--gold-soft); color:var(--gold);
  font-size:.95rem; font-weight:700; display:flex; align-items:center; justify-content:center; }
.invite strong { display:block; color:var(--ink); font-size:1.08rem; margin-bottom:.2rem; }
.invite p { margin:0; }
.details { margin:1.4rem 0; padding:0; list-style:none; }
.details li { display:flex; gap:1rem; padding:.62rem 0; border-bottom:1px solid var(--rule); align-items:baseline; }
.details li:last-child { border-bottom:0; }
.details .label { flex:0 0 5.5rem; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.details .value { flex:1; color:var(--ink); }
.term-label { font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin:2.2rem 0 .2rem; font-weight:700; }
.term-blurb { color:var(--muted); font-size:.97rem; margin:0 0 .9rem; }
ol.sessions { list-style:none; padding:0; margin:0; }
ol.sessions li { display:flex; gap:.85rem; padding:.72rem 0; border-bottom:1px solid var(--rule); align-items:baseline; }
ol.sessions .n { flex:0 0 1.6rem; color:var(--muted); font-size:.85rem; text-align:right; }
ol.sessions .t { color:var(--ink); text-decoration:none; font-weight:600; }
ol.sessions .t:hover { text-decoration:underline; }
ol.sessions .w { display:block; font-size:.9rem; color:var(--muted); font-style:italic; font-weight:400; }
.quiet { color:var(--muted); font-size:.97rem; font-style:italic; }
.nav { display:flex; flex-wrap:wrap; gap:.45rem; padding:1rem 0 0; }
.nav a { display:inline-block; padding:.45rem .85rem; border:1px solid var(--rule);
  border-radius:999px; text-decoration:none; font-size:.93rem; background:var(--surface); }
.nav a[aria-current="page"] { background:var(--gold-soft); border-color:var(--gold); color:var(--gold); }
.pager { display:flex; justify-content:space-between; gap:1rem; margin:2.5rem 0 0; padding-top:1.4rem; border-top:1px solid var(--rule); }
.pager a { text-decoration:none; font-size:.95rem; max-width:48%; }
.pager .lbl { display:block; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.pager .r { text-align:right; margin-left:auto; }
footer { margin:3.2rem 0 0; padding:1.7rem 0 3rem; border-top:1px solid var(--rule); color:var(--muted); font-size:.94rem; }
footer p { margin:0 0 .5rem; }
.res { list-style:none; padding:0; margin:1.2rem 0; }
.res li { padding:.82rem 0; border-bottom:1px solid var(--rule); }
.res li:last-child { border-bottom:0; }
.res a { font-weight:600; text-decoration:none; }
.res a:hover { text-decoration:underline; }
.res .d { display:block; color:var(--muted); font-size:.94rem; margin-top:.15rem; }
.words { display:grid; grid-template-columns:1fr; gap:.7rem; margin:1.3rem 0; padding:0; list-style:none; }
.words li { background:var(--surface); border:1px solid var(--rule); border-radius:.4rem; padding:.8rem .95rem; }
.words .w { color:var(--gold); font-style:italic; font-weight:700; }
.words .g { color:var(--muted); font-size:.95rem; }
.tag { display:inline-block; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase;
  background:var(--gold-soft); color:var(--gold); padding:.2rem .55rem; border-radius:999px; font-weight:700; }
@media (min-width:40rem) {
  body { font-size:1.1875rem; }
  .masthead { padding:3.2rem 0 1.8rem; }
  .words { grid-template-columns:1fr 1fr; }
}
@media print { body { background:#fff; } .nav,.pager { display:none; } }
