:root { --plum:#3E2434; --gold:#C9A363; --cream:#FBF8F3; --sand:#F2EADB; --link:#8A6B33; --line:#E6DCCB; --muted:#6b5563; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--cream); color:var(--plum); font-family: Lato, "Helvetica Neue", Arial, sans-serif; font-size:17px; line-height:1.65; }
img { max-width:100%; height:auto; }
a { color:var(--link); }
:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.skip { position:absolute; left:-999px; } .skip:focus { left:8px; top:8px; background:#fff; padding:8px; z-index:10; }

.top { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 24px; padding:14px 20px; background:var(--plum); }
.brand { display:flex; align-items:center; gap:10px; color:var(--gold); text-decoration:none; font-family:"Cormorant Garamond", Georgia, serif; font-weight:600; font-size:1.5rem; letter-spacing:.02em; }
.top nav { display:flex; flex-wrap:wrap; align-items:center; gap:6px 20px; }
.top nav a { color:#E9D9B8; text-decoration:none; font-size:.95rem; }
.top nav a:hover { color:#fff; }

.wrap { max-width:1000px; margin:0 auto; padding:48px 20px; }
.narrow { max-width:680px; }
.center { text-align:center; }
h1, h2 { font-family:"Cormorant Garamond", Georgia, serif; font-weight:600; line-height:1.1; margin:0 0 .5em; }
h3 { font-family:Lato, Arial, sans-serif; font-weight:700; line-height:1.25; margin:0 0 .4em; }
h1 { font-size:3rem; } h2 { font-size:2.2rem; } h3 { font-size:1.1rem; }
.eyebrow { text-transform:uppercase; letter-spacing:.14em; font-size:.8rem; color:var(--link); margin:0 0 8px; }
.lead { font-size:1.2rem; font-weight:400; max-width:680px; }
.center .lead, .hero .lead { margin-left:auto; margin-right:auto; }
.fine { font-size:.85rem; color:var(--muted); }

.hero { text-align:center; padding:72px 20px 56px; max-width:820px; margin:0 auto; }
.hero h1 { font-size:3.8rem; }
.band { background:var(--sand); }
.band.plum { background:var(--plum); color:var(--cream); }
.band.plum h2 { color:var(--gold); }
.three { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:28px; }

.btn { display:inline-block; padding:12px 22px; background:var(--gold); color:var(--plum); border:1px solid var(--gold); border-radius:8px; text-decoration:none; font-weight:bold; margin:4px 4px 4px 0; }
.btn:hover { background:#d6b578; }
.btn.ghost { background:var(--plum); color:var(--cream); border-color:var(--plum); }
.btn.ghost:hover { background:#54314a; color:#fff; }
.btn.ghost::after { content:" →"; color:var(--gold); }
.btn.big { padding:15px 28px; font-size:1.05rem; }
.btn.small { padding:7px 14px; font-size:.9rem; margin:0; color:var(--plum); }

.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,430px),1fr)); gap:24px; margin:24px 0; }
.card { display:flex; gap:22px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:16px; }
.card img { width:150px; height:auto; border-radius:6px; flex:none; align-self:flex-start; }
.card .dates { color:var(--link); font-size:.9rem; margin:0 0 6px; }
.card p { margin:0 0 10px; font-size:.95rem; }
.card.pass { border-color:var(--gold); margin:28px 0 8px; }
.card.pass img { width:190px; }

.about .portrait { float:right; width:200px; height:200px; object-fit:cover; border-radius:50%; margin:0 0 12px 24px; border:3px solid var(--gold); }
.tag { color:var(--link); font-family:"Cormorant Garamond", Georgia, serif; font-style:italic; font-weight:500; letter-spacing:.02em; }
.tag.big { font-size:1.9rem; text-align:center; margin:32px 0; }

footer { background:var(--plum); color:var(--cream); text-align:center; padding:36px 20px; }
footer a { color:var(--gold); }
footer .tag { color:var(--gold); margin:8px 0; }
footer .fine { color:#cdbcc6; max-width:640px; margin:12px auto 0; }

@media (max-width:600px) {
  h1 { font-size:2.3rem; } .hero h1 { font-size:2.7rem; } h2 { font-size:1.8rem; }
  .hero { padding:44px 20px 36px; }
  .about .portrait { float:none; display:block; margin:0 auto 20px; }
  .card { flex-direction:column; align-items:center; text-align:center; } .card img, .card.pass img { width:min(260px,70%); align-self:center; }
}

.btn.soon { background:var(--sand); border-color:var(--gold); color:var(--plum); cursor:default; }
.btn.soon:hover { background:var(--sand); }
