 :root{--cream:#f7f1e8;--brown:#7b5b45;--brown-dark:#4f392b;--brown-soft:#a48770;--line:rgba(123,91,69,.25)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--brown-dark);font-family:"Montserrat",sans-serif;overflow-x:hidden}
.grain{position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}
.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:65px 22px 80px;position:relative;background:radial-gradient(circle at 50% 15%,rgba(255,255,255,.8),transparent 36%),linear-gradient(180deg,#f8f2e9,#f5eee5)}
.hero:after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:25px;width:90px;height:1px;background:var(--line)}
.hero .monogram{width:min(260px,54vw);height:auto;display:block;object-fit:contain;margin:0 auto 22px;filter:drop-shadow(0 9px 15px rgba(79,57,43,.12));animation:monogramReveal 1.2s ease both}
@keyframes monogramReveal{from{opacity:0;transform:translateY(-12px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
.eyebrow{font-size:10px;letter-spacing:4px;font-weight:600;color:var(--brown-soft);margin:0 0 12px}h1,h2{font-family:"Cormorant Garamond",serif;font-weight:500;color:var(--brown-dark)}h1{font-size:clamp(54px,9vw,96px);line-height:.9;margin:0 0 20px}.names{font-family:"Cormorant Garamond",serif;font-size:21px;margin:0;color:var(--brown)}.names span{font-style:italic;padding:0 8px}
.date-line{display:flex;align-items:center;gap:13px;font-size:10px;letter-spacing:3px;text-transform:uppercase;margin:19px 0 25px;color:var(--brown-soft)}.date-line span{width:34px;height:1px;background:var(--line)}.intro{font-size:12px;line-height:1.9;color:#856e5c;margin:0 0 30px}
.search-card{width:min(620px,100%);padding:25px;background:rgba(255,253,249,.72);border:1px solid var(--line);box-shadow:0 18px 50px rgba(79,57,43,.08);backdrop-filter:blur(7px)}.search-card label{display:block;text-align:left;text-transform:uppercase;font-size:9px;letter-spacing:3px;color:var(--brown-soft);margin-bottom:9px}.input-wrap{display:flex;gap:8px}input{min-width:0;flex:1;border:1px solid rgba(123,91,69,.3);background:#fffdfa;padding:15px 16px;font:400 13px "Montserrat",sans-serif;color:var(--brown-dark);outline:none}input:focus{border-color:var(--brown);box-shadow:0 0 0 3px rgba(123,91,69,.08)}button{border:0;cursor:pointer;font:600 9px "Montserrat",sans-serif;letter-spacing:1.5px;text-transform:uppercase}.search-card button{background:var(--brown);color:#fff;padding:0 18px;display:flex;align-items:center;gap:16px;transition:.3s}.search-card button:hover{background:var(--brown-dark);transform:translateY(-1px)}button:disabled{opacity:.65;cursor:wait}.arrow{font-size:17px}.hint{font-size:9px;color:#9b8979;text-align:left;margin:10px 0 0}
.message{min-height:25px;margin-top:16px;font-size:11px;color:var(--brown);opacity:0;transform:translateY(5px);transition:.3s}.message.show{opacity:1;transform:none}.message.error{color:#8a4f45}
.result-section{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:80px 20px;background:linear-gradient(180deg,#f0e5d8,#e9ddcf);position:relative;overflow:hidden}.result-section:before,.result-section:after{content:"";position:absolute;width:360px;height:360px;border:1px solid rgba(123,91,69,.1);border-radius:50%}.result-section:before{left:-210px;top:-120px}.result-section:after{right:-210px;bottom:-120px}.result-card{width:min(600px,100%);background:rgba(255,253,249,.9);border:1px solid rgba(123,91,69,.28);padding:55px 35px 38px;text-align:center;box-shadow:0 25px 80px rgba(79,57,43,.14);position:relative;opacity:0;transform:translateY(35px) scale(.98);transition:opacity .8s,transform .8s}.result-card.visible{opacity:1;transform:none}.result-ornament{font-family:"Cormorant Garamond",serif;font-size:25px;color:var(--brown);margin-bottom:25px}.result-ornament span{font-size:.6em;margin:0 7px}.guest-label,.table-label{font-size:9px;letter-spacing:4px;color:var(--brown-soft);margin:0 0 7px}.result-card h2{font-size:42px;margin:0 0 18px}.rule{width:65px;height:1px;background:var(--line);margin:0 auto 23px}.table-number{font-family:"Cormorant Garamond",serif;font-size:105px;line-height:.9;color:var(--brown);margin:10px 0 13px}.table-note{font-family:"Cormorant Garamond",serif;font-size:18px;font-style:italic;color:#856e5c;margin:0 0 30px}.event-details{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;margin-bottom:25px}.event-details div{display:flex;flex-direction:column;gap:6px;border-right:1px solid var(--line)}.event-details div:last-child{border-right:0}.event-details strong{font-size:8px;letter-spacing:2px;color:var(--brown-soft)}.event-details span{font-family:"Cormorant Garamond",serif;font-size:17px}.back-button{background:transparent;color:var(--brown);border:1px solid var(--line);padding:12px 18px}.back-button:hover{background:var(--brown);color:#fff}
.details{min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:80px 20px}.detail-card{max-width:650px}.small-monogram{font-family:"Cormorant Garamond",serif;font-size:27px;margin-bottom:22px;color:var(--brown)}.small-monogram span{font-size:.55em;margin:0 7px}.detail-card h2{font-size:clamp(42px,7vw,68px);line-height:.9;margin:0 0 22px}.detail-card>p:not(.eyebrow){font-family:"Cormorant Garamond",serif;font-size:19px;line-height:1.7;color:#856e5c}.signature{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:25px;margin-top:30px;color:var(--brown)}
footer{text-align:center;padding:38px 20px;background:var(--brown-dark);color:#eee2d5}.footer-monogram{font-family:"Cormorant Garamond",serif;font-size:25px;margin-bottom:9px}footer p{font-family:"Cormorant Garamond",serif;font-size:15px;margin:4px}footer .copyright{font:9px "Montserrat",sans-serif;letter-spacing:2px;text-transform:uppercase;opacity:.65;margin-top:12px}.reveal{opacity:0;transform:translateY(28px);transition:opacity 1s ease,transform 1s ease}.reveal.active{opacity:1;transform:none}
@media(max-width:600px){.hero{padding-top:50px}.hero .monogram{width:min(225px,60vw);margin-bottom:19px}h1{font-size:59px}.names{font-size:18px}.input-wrap{flex-direction:column}.search-card button{height:48px;justify-content:center}.result-card{padding:45px 22px 30px}.result-card h2{font-size:35px}.table-number{font-size:90px}.event-details{grid-template-columns:1fr}.event-details div{border-right:0;border-bottom:1px solid var(--line);padding:10px}.event-details div:last-child{border-bottom:0}.detail-card h2{font-size:48px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero .monogram{animation:none}.reveal{transition:none}}

/* All remaining textual C ♥ A monograms are replaced by the supplied monogram image. */
.section-monogram{
  display:block;
  object-fit:contain;
  width:150px;
  height:auto;
  margin:0 auto 25px;
  filter:drop-shadow(0 7px 12px rgba(79,57,43,.10));
}
.result-monogram{
  width:135px;
  margin-bottom:24px;
}
.small-monogram{
  width:105px;
  margin:0 auto 22px;
}
.footer-monogram-img{
  display:block;
  width:75px;
  height:auto;
  max-height:58px;
  object-fit:contain;
  margin:0 auto 10px;
  filter:brightness(0) invert(1);
  opacity:.9;
}
@media(max-width:600px){
  .result-monogram{width:120px}
  .small-monogram{width:90px}
  .footer-monogram-img{width:65px}
}
