
/* Layout: a burgundy letterhead band over an ivory page; one generous column like a merchant's list, ledger tables, wax-seal crest. */
:root{
  --paper:#F8F3EC; --wash:#F0E7DC; --ink:#2A1418; --muted:#76605F;
  --claret:#6E1529; --band:#4B0E1D; --on-band:#F6EBDD; --btn:#6E1529;
  --gold:#A9864A; --rule:#DED0C1; --field:#FFFDF9;
  --display:"Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;
  --body:"EB Garamond", "Garamond", "Iowan Old Style", Georgia, serif;
  --label:"Jost", "Futura", "Avenir Next", "Helvetica Neue", sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --paper:#160C0F; --wash:#211217; --ink:#F2E7D8; --muted:#BBA698;
  --claret:#DE8293; --band:#3D0A17; --on-band:#F4E6D3; --btn:#8E2339;
  --gold:#D5B26C; --rule:#3E2A2F; --field:#1E1115; color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#160C0F; --wash:#211217; --ink:#F2E7D8; --muted:#BBA698;
  --claret:#DE8293; --band:#3D0A17; --on-band:#F4E6D3; --btn:#8E2339;
  --gold:#D5B26C; --rule:#3E2A2F; --field:#1E1115; color-scheme:dark}

*{box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1.15rem;line-height:1.62;padding:0}
.wrap{max-width:820px;margin:0 auto;padding-inline:20px}
a{color:var(--claret)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* Letterhead band */
.band{background:var(--band);color:var(--on-band)}
.mast{display:grid;justify-items:center;text-align:center;gap:.9rem;padding-block:3.2rem 2.4rem}
.seal{width:116px;height:116px;color:var(--gold)}
.seal text{fill:currentColor}
.pre{font-family:var(--label);text-transform:uppercase;letter-spacing:.38em;font-size:.72rem;color:var(--gold);margin:0}
h1{font-family:var(--display);font-weight:400;font-size:clamp(2.5rem,7.5vw,4.4rem);line-height:1.02;letter-spacing:-.01em;margin:0;text-wrap:balance}
.motto{font-family:var(--body);font-style:italic;font-size:1.2rem;margin:0;opacity:.85}
nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 2rem;padding-block:1rem 1.2rem;border-top:1px solid color-mix(in srgb,var(--on-band) 22%,transparent)}
nav a{font-family:var(--label);text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;color:var(--on-band);text-decoration:none;opacity:.8}
nav a:hover{opacity:1;color:var(--gold)}

/* Sections */
section{padding-block:3.6rem 0}
.eyebrow{display:flex;align-items:center;gap:.8rem;font-family:var(--label);text-transform:uppercase;letter-spacing:.3em;font-size:.72rem;color:var(--gold);margin:0}
.eyebrow::before{content:"";width:2.2rem;height:1px;background:var(--gold)}
h2{font-family:var(--display);font-weight:400;font-size:clamp(1.9rem,4.6vw,2.6rem);line-height:1.12;margin:.6rem 0 1.1rem;text-wrap:balance;color:var(--claret)}
h3{font-family:var(--label);font-weight:500;text-transform:uppercase;letter-spacing:.22em;font-size:.74rem;color:var(--muted);margin:0 0 .8rem}
p{margin:0 0 1rem;max-width:65ch}
.lede{font-size:1.28rem}
.lede::first-letter{font-family:var(--display);float:left;font-size:4.2rem;line-height:.8;padding:.35rem .55rem 0 0;color:var(--claret)}

.particulars{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin:2rem 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.particulars div{padding:1.1rem .2rem;display:grid;gap:.25rem}
.particulars dt{font-family:var(--label);text-transform:uppercase;letter-spacing:.2em;font-size:.68rem;color:var(--muted)}
.particulars dd{margin:0;font-family:var(--display);font-size:1.35rem}

.rules{display:grid;gap:.8rem;margin:0;padding:0;list-style:none;counter-reset:r}
.rules li{display:grid;grid-template-columns:2.6rem 1fr;gap:.7rem;align-items:baseline;counter-increment:r}
.rules li::before{content:counter(r,upper-roman);font-family:var(--display);font-style:italic;color:var(--claret);text-align:right}

/* Next gathering */
.notice{display:grid;gap:2.2rem}
.dates{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.7rem}
.opt{position:relative;display:grid;gap:.25rem;padding:1rem 1rem .9rem;border:1px solid var(--rule);background:var(--field);cursor:pointer;transition:border-color .15s,background .15s;min-width:0}
.opt:hover{border-color:var(--gold)}
.opt input{position:absolute;top:.9rem;right:.9rem;width:1.1rem;height:1.1rem;accent-color:var(--claret);margin:0}
.opt:has(input:checked){border-color:var(--claret);background:var(--wash);box-shadow:inset 3px 0 0 var(--claret)}
.opt .day{font-family:var(--label);text-transform:uppercase;letter-spacing:.2em;font-size:.68rem;color:var(--gold)}
.opt .when{font-family:var(--display);font-size:1.35rem;line-height:1.15;padding-right:1.6rem}
.opt .sub{font-size:.98rem;color:var(--muted)}
.tally{font-family:var(--label);font-size:.72rem;letter-spacing:.12em;color:var(--muted);font-variant-numeric:tabular-nums}

.themes{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.9rem}
.themes .opt{padding:1.3rem 1.3rem 1.2rem;gap:.5rem;align-content:start}
.themes .when{font-size:1.45rem}
.split{display:flex;gap:.4rem;flex-wrap:wrap}
.chip{font-family:var(--label);text-transform:uppercase;letter-spacing:.14em;font-size:.64rem;padding:.25rem .55rem;border:1px solid currentColor;border-radius:999px}
.chip.red{color:var(--claret)}
.chip.white{color:var(--gold)}
.lesson{font-size:1.02rem;margin:0}
.lineup{font-size:.95rem;color:var(--muted);margin:0;font-style:italic}

.reply{display:grid;gap:.9rem;padding-top:1.6rem;border-top:1px solid var(--rule)}
.row{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}
label.f{display:grid;gap:.35rem;font-family:var(--label);text-transform:uppercase;letter-spacing:.18em;font-size:.68rem;color:var(--muted);min-width:0}
input[type=text],input[type=email],textarea{font-family:var(--body);font-size:1.08rem;letter-spacing:0;text-transform:none;color:var(--ink);background:var(--field);border:1px solid var(--rule);padding:.65rem .8rem;border-radius:0;width:100%}
input[type=text]:focus,input[type=email]:focus,textarea:focus{border-color:var(--claret);outline:none}
textarea{min-height:8rem;resize:vertical}
.btn{font-family:var(--label);text-transform:uppercase;letter-spacing:.22em;font-size:.74rem;font-weight:500;background:var(--btn);color:var(--on-band);border:1px solid var(--btn);padding:.95rem 1.6rem;border-radius:0;cursor:pointer}
.btn:hover{filter:brightness(1.12)}
a.btn{display:inline-block;text-decoration:none}
.opt.static{cursor:default}
.btn.ghost{background:transparent;color:var(--claret);border-color:var(--claret)}
.out{font-family:var(--body);background:var(--field);border:1px solid var(--rule);border-left:3px solid var(--gold);padding:1rem 1.1rem;white-space:pre-wrap;margin:0;font-size:1.02rem;min-width:0;overflow-wrap:anywhere}
.hint{font-style:italic;color:var(--muted);font-size:1rem;margin:0}
.status{font-family:var(--label);text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;color:var(--gold)}

/* Ledgers */
.ledger{overflow-x:auto;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
table{width:100%;border-collapse:collapse;min-width:580px;font-variant-numeric:tabular-nums lining-nums}
th{font-family:var(--label);font-weight:500;text-transform:uppercase;letter-spacing:.18em;font-size:.66rem;color:var(--muted);text-align:left;padding:.85rem .6rem;border-bottom:1px solid var(--rule)}
td{padding:.75rem .6rem;border-bottom:1px solid var(--rule);vertical-align:top}
td.num,th.num{text-align:right}
tr.empty td{text-align:center;font-family:var(--display);font-style:italic;font-size:1.15rem;color:var(--muted);padding:2.6rem 1rem;border-bottom:0}
.scale{font-size:1rem;color:var(--muted)}

.honours{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.9rem}
.honour{border:1px solid var(--rule);background:var(--field);padding:1.5rem 1.1rem 1.3rem;text-align:center;display:grid;gap:.45rem;align-content:start}
.honour .title{font-family:var(--label);text-transform:uppercase;letter-spacing:.22em;font-size:.68rem;color:var(--gold)}
.honour .holder{font-family:var(--display);font-size:1.45rem;line-height:1.2;color:var(--claret)}
.honour .holder.vacant{color:var(--muted);font-style:italic}
.honour .note{font-size:.98rem;color:var(--muted)}

/* Correspondence */
.letter{display:grid;gap:1.1rem}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.1rem}
.address{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:1.1rem 1.2rem;background:var(--wash);border:1px solid var(--rule);margin-bottom:1.6rem}
.address .lbl{font-family:var(--label);text-transform:uppercase;letter-spacing:.2em;font-size:.66rem;color:var(--muted)}
.address .addr{font-family:var(--display);font-size:1.3rem;color:var(--claret);user-select:all;overflow-wrap:anywhere;min-width:0}
.btn.small{padding:.55rem .9rem;font-size:.66rem}

footer{margin-top:4.5rem}
footer .wrap{display:grid;justify-items:center;gap:.4rem;padding-block:2.2rem;text-align:center}
footer span{font-family:var(--label);text-transform:uppercase;letter-spacing:.26em;font-size:.66rem;opacity:.8}
footer .fx{font-family:var(--display);font-style:italic;font-size:1.1rem;letter-spacing:0;text-transform:none;opacity:1;color:var(--gold)}

@media (prefers-reduced-motion:no-preference){
  .seal{animation:press 1s cubic-bezier(.2,.7,.2,1) both}
  @keyframes press{from{transform:scale(1.1) rotate(-10deg)}to{transform:none}}
}

.form-error{font-family:var(--label);text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;color:var(--claret)}
.hp{position:absolute;left:-9999px}
.received{display:grid;gap:1rem;justify-items:center;text-align:center;padding-block:4rem 2rem}
.received p{max-width:46ch}
