:root{
  --paper:#f7f1e6; --card:#fffaf1; --ink:#2f2a22; --muted:#6e6353;
  --bronze:#6b5a3a; --rust:#9a4a26; --gold:#b08a3e; --line:#e2d6c0;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"Source Serif 4",Georgia,serif;font-size:1.125rem;line-height:1.7}
.wrap{max-width:680px;margin:0 auto;padding:0 20px}
header.hero{text-align:center;padding:56px 0 28px}
.portrait{width:min(300px,70vw);aspect-ratio:3/4;object-fit:cover;object-position:50% 20%;
  border-radius:4px;border:6px solid var(--card);box-shadow:0 0 0 1px var(--line),0 10px 30px rgba(80,55,20,.15)}
h1{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:clamp(2.2rem,7vw,3.2rem);
  line-height:1.1;margin:28px 0 6px;color:var(--ink);letter-spacing:.01em}
.nee{font-style:italic;color:var(--muted);margin:0}
.dates{font-family:"Cormorant Garamond",Georgia,serif;font-size:1.35rem;color:var(--bronze);margin:10px 0 0;letter-spacing:.04em}
.rule{display:flex;align-items:center;gap:14px;justify-content:center;margin:34px auto;color:var(--gold);max-width:260px}
.rule::before,.rule::after{content:"";flex:1;height:1px;background:var(--line)}
.rule span{font-size:.9rem}
article p{margin:0 0 1.15em;hyphens:auto}
article p:first-child::first-letter{font-family:"Cormorant Garamond",Georgia,serif;float:left;font-size:3.6em;
  line-height:.85;padding:.06em .1em 0 0;color:var(--rust)}
h2{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:1.9rem;color:var(--rust);
  text-align:center;margin:0 0 .4em}
.service{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--rust);
  border-radius:4px;padding:28px 26px;text-align:center}
.service p{margin:0 0 1em}
.btn{display:inline-block;background:var(--bronze);color:#fffaf1;text-decoration:none;
  padding:12px 22px;border-radius:3px;font-size:1rem;border:0;font-family:inherit;cursor:pointer}
.btn:hover,.btn:focus-visible{background:var(--rust)}
.intro{text-align:center;color:var(--muted);margin:0 0 24px}
.entries{display:grid;gap:16px;margin-bottom:32px}
.entry{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--gold);padding:18px 20px;border-radius:3px}
.entry p{margin:0 0 .6em}
.entry .who{margin:0;color:var(--bronze);font-style:italic;font-size:1rem}
.empty{text-align:center;color:var(--muted);font-style:italic;font-size:1rem}
form{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:24px}
label{display:block;font-size:.95rem;color:var(--bronze);margin:0 0 4px}
.opt{color:var(--muted);font-style:italic}
input,textarea{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:#fff;
  border:1px solid var(--line);border-radius:3px;padding:10px 12px;margin:0 0 16px}
input:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}
textarea{min-height:160px;resize:vertical}
.hp{position:absolute;left:-9999px}
.note{font-size:.9rem;color:var(--muted);margin:-4px 0 18px}
footer{text-align:center;color:var(--muted);font-size:.95rem;padding:40px 0 56px}
section{margin-top:8px}
@media (max-width:480px){body{font-size:1.06rem}.service,form{padding:22px 18px}}
