:root{
  --paper:#FAF8F4; --cream:#F5F0E8; --ink:#1C1814; --ink-2:#3A322A;
  --muted:#6B5E4E; --gold:#A8834A; --gold-ink:#8A6835;
  --rule:rgba(28,24,20,.13);
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Karla","Helvetica Neue",Helvetica,Arial,sans-serif;
  --gut:20px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#15110D; --cream:#1D1712; --ink:#F3EDE1; --ink-2:#DDD3C3;
    --muted:#A3937D; --gold:#C9A66B; --gold-ink:#D8B87C;
    --rule:rgba(243,237,225,.15);
  }
}
:root[data-theme="dark"]{
  --paper:#15110D; --cream:#1D1712; --ink:#F3EDE1; --ink-2:#DDD3C3;
  --muted:#A3937D; --gold:#C9A66B; --gold-ink:#D8B87C;
  --rule:rgba(243,237,225,.15);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink-2);
  font-family:var(--sans);font-size:1.0425rem;line-height:1.68;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto}
@media (min-width:760px){:root{--gut:32px}}
.wrap{max-width:820px;margin:0 auto;padding-left:var(--gut);padding-right:var(--gut)}
h1,h2{font-family:var(--serif);color:var(--ink);font-weight:400;text-wrap:balance;margin:0}
p{margin:0}
a{color:inherit}
a:focus-visible,.btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* header */
.masthead{border-bottom:1px solid var(--rule);background:var(--paper)}
.masthead .bar{
  display:flex;align-items:center;justify-content:space-between;
  gap:18px;padding-block:15px;flex-wrap:wrap;
}
.mark{display:flex;flex-direction:column;line-height:1;text-decoration:none}
.mark b{font-family:var(--serif);font-size:1.18rem;font-weight:500;color:var(--ink)}
.mark span{
  font-size:.605rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold-ink);margin-top:6px;font-weight:600;
}
.nav{display:flex;gap:22px;align-items:center}
.nav a{
  font-size:.775rem;letter-spacing:.09em;text-transform:uppercase;
  text-decoration:none;color:var(--muted);font-weight:600;transition:color .18s;
}
.nav a:hover,.nav a[aria-current="page"]{color:var(--ink)}
.nav a.cta{color:var(--gold-ink);border-bottom:1px solid var(--gold);padding-bottom:2px}

/* buttons */
.btn{
  display:inline-flex;align-items:center;font-size:.83rem;font-weight:700;
  letter-spacing:.075em;text-transform:uppercase;text-decoration:none;
  padding:16px 30px;border:1px solid var(--ink);border-radius:2px;
  background:var(--ink);color:var(--paper);
  transition:background .2s,color .2s,border-color .2s;
}
.btn:hover{background:var(--gold-ink);border-color:var(--gold-ink);color:#fff}

/* home */
.home{
  max-width:980px;margin:0 auto;
  padding-left:var(--gut);padding-right:var(--gut);
  padding-block:clamp(44px,8vw,96px);
  display:grid;gap:clamp(34px,6vw,64px);grid-template-columns:1fr;align-items:center;
}
@media (min-width:880px){.home{grid-template-columns:1fr 1fr;gap:clamp(44px,6vw,72px)}}
.home .name{font-family:var(--serif);font-size:clamp(2.2rem,5.2vw,3.4rem);
  font-weight:400;line-height:1.02;color:var(--ink);letter-spacing:-.008em;display:block}
.home .sub{display:block;margin-top:12px;font-size:.72rem;font-weight:600;
  letter-spacing:.34em;text-transform:uppercase;color:var(--gold-ink)}
.rule{height:1px;background:var(--rule);margin:28px 0}
.meta{margin-top:20px;font-size:.87rem;color:var(--muted)}

/* portrait */
.portrait{margin:0}
.portrait img{
  display:block;width:100%;border-radius:2px;
  box-shadow:0 1px 0 var(--rule),0 20px 48px -28px rgba(28,24,20,.42);
}
.portrait figcaption{
  margin-top:11px;font-size:.705rem;letter-spacing:.19em;
  text-transform:uppercase;color:var(--gold-ink);font-weight:600;
}

/* shared section rhythm */
.band.wrap,.sessions.wrap,.closing.wrap{max-width:980px}
.closing.wrap{padding-bottom:clamp(52px,8vw,96px)}
.band{padding-block:clamp(14px,3vw,26px) clamp(52px,8vw,96px)}
.intro{max-width:64ch}
.intro p{font-size:1.085rem}
.eyebrow{font-size:.705rem;font-weight:600;letter-spacing:.19em;
  text-transform:uppercase;color:var(--gold-ink);margin:0}

/* sessions */
.sessions{padding-block:clamp(48px,7vw,80px) 0}
.sessions h2{font-size:clamp(1.6rem,3.4vw,2.2rem);line-height:1.1;margin-top:14px}
.start-here{
  margin-top:20px;max-width:52ch;font-family:var(--serif);
  font-size:clamp(1.1rem,2.1vw,1.3rem);line-height:1.45;color:var(--gold-ink);
}
.session{
  margin-top:clamp(36px,5vw,48px);padding-top:clamp(28px,4vw,36px);
  border-top:1px solid var(--rule);
}
.session h3{
  font-family:var(--serif);font-weight:400;color:var(--ink);
  font-size:clamp(1.35rem,2.8vw,1.75rem);line-height:1.15;margin:0 0 18px;
}
.terms{
  margin-top:22px;font-size:.735rem;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold-ink);
}
.closing-note{
  max-width:56ch;font-family:var(--serif);
  font-size:clamp(1.2rem,2.4vw,1.5rem);line-height:1.42;color:var(--ink);
}

/* about */
.about{padding-block:clamp(40px,7vw,80px) clamp(52px,8vw,96px)}
.about .eyebrow{font-size:.705rem;font-weight:600;letter-spacing:.19em;
  text-transform:uppercase;color:var(--gold-ink);margin:0}
.about h1{font-size:clamp(2.1rem,5.4vw,3.2rem);line-height:1.04;
  letter-spacing:-.012em;margin-top:14px}
.about .lede{margin-top:26px;font-size:clamp(1.14rem,2.2vw,1.42rem);
  line-height:1.5;color:var(--ink);font-family:var(--serif)}
.prose{max-width:62ch}
.prose p{margin-top:19px}
.prose p:first-child{margin-top:0}
.prose .beat{
  font-family:var(--serif);font-size:clamp(1.22rem,2.4vw,1.55rem);
  line-height:1.38;color:var(--ink);margin-top:28px;
}
.about h2{font-size:clamp(1.5rem,3.2vw,2.05rem);line-height:1.1;
  margin-top:clamp(44px,6vw,64px);padding-top:clamp(30px,4vw,40px);
  border-top:1px solid var(--rule)}
.about h2 + p{margin-top:20px}
.about .portrait{margin:clamp(36px,5vw,52px) 0 0;max-width:420px}
.closing{
  margin-top:clamp(44px,6vw,64px);padding-top:clamp(30px,4vw,40px);
  border-top:1px solid var(--rule);
}
.cta-row{margin-top:clamp(36px,5vw,48px);display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.cta-note{font-size:.87rem;color:var(--muted)}

/* footer */
.foot{border-top:1px solid var(--rule);padding-block:30px 34px;
  font-size:.83rem;color:var(--muted)}
.foot a{color:var(--ink-2)}
.foot .small{margin-top:14px;font-size:.78rem;line-height:1.6;max-width:70ch}

@media (prefers-reduced-motion: reduce){*{transition:none!important}}
.choices{margin-top:clamp(36px,5vw,48px);padding-top:clamp(28px,4vw,36px);border-top:1px solid var(--rule)}
.choice-row{margin-top:16px;display:flex;flex-wrap:wrap;gap:12px}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
