@font-face{font-family:"Playfair";src:url("/fonts/PlayfairDisplay.ttf") format("truetype");font-weight:400 900;font-display:swap}
@font-face{font-family:"Playfair";src:url("/fonts/PlayfairDisplay-Italic.ttf") format("truetype");font-style:italic;font-weight:400 900;font-display:swap}
@font-face{font-family:"Cormorant";src:url("/fonts/CormorantGaramond.ttf") format("truetype");font-weight:300 700;font-display:swap}
:root{--navy:#1f2b4a;--navy2:#162039;--gold:#c9a227;--cream:#faf5e8;--parch:#f3ead6;--red:#80181e;--ink:#2a221c}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--parch);color:var(--ink);font-family:"Cormorant",Georgia,serif;font-size:20px;line-height:1.55}
img{max-width:100%;height:auto;display:block}
a{color:var(--red)}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.hero{background:radial-gradient(ellipse at top,#2b3a63 0%,var(--navy) 55%,var(--navy2) 100%);color:var(--cream);padding:28px 16px 44px}
.hero-inner{max-width:640px;margin:0 auto;text-align:center;border:3px double var(--gold);padding:30px 22px 32px;position:relative;background:rgba(0,0,0,.08)}
.hero-inner::before,.hero-inner::after{content:"";position:absolute;width:14px;height:14px;border-radius:50%;background:var(--gold);top:-8px}
.hero-inner::before{left:-8px}.hero-inner::after{right:-8px}
.seal{margin:0 auto 6px;width:96px;height:96px}
.brand{letter-spacing:.35em;color:var(--gold);font-weight:700;margin:0 0 8px;font-size:16px}
h1{font-family:"Playfair",Georgia,serif;font-weight:700;font-size:clamp(34px,8vw,52px);line-height:1.08;margin:0}
h1 span{font-style:italic;font-weight:500;color:#f1e3bd}
.ribbon{display:inline-block;margin:16px 0 6px;padding:5px 18px;background:var(--red);color:var(--cream);font-family:"Playfair",serif;font-style:italic;font-size:18px;border-radius:2px;box-shadow:0 2px 0 rgba(0,0,0,.25)}
.lede{font-size:21px;margin:12px auto 22px;max-width:30em}
.signup{text-align:left;background:var(--cream);color:var(--ink);padding:18px;border-radius:4px;border:1px solid var(--gold)}
.signup label{display:block;font-weight:700;margin-bottom:6px;font-size:18px}
.row{display:flex;gap:10px;flex-wrap:wrap}
input[type=email]{flex:1 1 220px;min-width:0;font:inherit;font-size:19px;padding:12px 14px;border:2px solid #b9a77a;border-radius:4px;background:#fff;color:var(--ink)}
input[type=email]:focus{border-color:var(--red);outline:none;box-shadow:0 0 0 3px rgba(201,162,39,.45)}
.btn{display:inline-block;font-family:"Playfair",Georgia,serif;font-weight:700;font-size:18px;background:var(--red);color:var(--cream);border:0;border-radius:4px;padding:13px 20px;cursor:pointer;text-decoration:none;flex:0 0 auto;box-shadow:0 2px 0 #4f0d11}
.btn:hover{background:#951d24}
.btn[disabled]{opacity:.7;cursor:progress}
.btn.big{font-size:20px;padding:15px 26px;margin:6px 0 4px}
.btn.ghost{background:transparent;color:var(--red);border:2px solid var(--red);box-shadow:none}
.btn.ghost:hover{background:var(--red);color:var(--cream)}
.fine{font-size:16px;margin:10px 0 0;color:#5d5045}
.hero .done .fine{color:#e8dcc0}
.msg{margin:8px 0 0;font-weight:700;color:var(--red);min-height:1em}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.done h2{font-family:"Playfair",serif;font-size:30px;margin:4px 0 6px;color:var(--gold)}
main{max-width:980px;margin:0 auto;padding:10px 16px 30px}
section{text-align:center;padding:26px 0}
.flourish{color:var(--red);font-size:30px;margin:0;line-height:1}
h2{font-family:"Playfair",Georgia,serif;font-size:clamp(26px,5vw,36px);margin:6px 0 18px;color:var(--navy)}
.gallery{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px}
.gallery li{background:#fff;padding:10px 10px 12px;border:1px solid #d9c9a1;box-shadow:0 3px 10px rgba(31,43,74,.12)}
.gallery span{display:block;margin-top:8px;font-family:"Playfair",serif;font-style:italic;font-size:17px;color:var(--navy)}
.note,.books p{max-width:34em;margin:20px auto 18px;font-size:20px}
footer{background:var(--navy);color:#e8dcc0;text-align:center;padding:22px 16px;font-size:17px}
footer p{margin:2px 0}
body.plain{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:20px}
.card{background:var(--cream);border:3px double var(--gold);padding:30px 24px;text-align:center}
.narrow{max-width:460px}
.card h1{color:var(--navy);font-size:32px}
.small{font-size:16px}
@media (max-width:420px){.row .btn{width:100%}.hero-inner{padding:24px 14px}}
