:root{
  --bg:#f8eadc;--text:#5a3d31;--muted:#9a7b6a;--accent:#c8693f;--accent2:#e0895e;
  --card:rgba(255,255,255,.55);--line:rgba(200,105,63,.3);--btn-text:#fff;
  --f-body:'Jost',sans-serif;--f-head:'DM Serif Display',serif;--f-script:'Caveat',cursive;
}
body{background:linear-gradient(180deg,#f8eadc,#f3d9c4 60%,#efc7ae)}
.script{background:none;color:var(--accent);-webkit-background-clip:border-box}
.hand{font:700 1.7rem var(--f-script);color:var(--accent);margin-bottom:.4rem}
.btn{background:var(--accent);border-color:var(--accent);border-radius:999px 999px 999px 8px}
.btn.ghost{background:transparent;color:var(--accent)}

.cover{background:linear-gradient(180deg,#f9e1c9 0%,#f3b996 55%,#d9744a 100%)}
.sun{position:absolute;width:340px;height:340px;border-radius:50%;top:6%;left:50%;transform:translateX(-50%);
  background:radial-gradient(circle,#ffe7b8,#f7b777 60%,transparent 70%);opacity:.85;animation:float 7s ease-in-out infinite}
.bg-blob{position:absolute;background:rgba(200,105,63,.2);animation:morph 9s ease-in-out infinite}
.bg-blob.b1{width:260px;height:260px;left:-80px;bottom:8%}
.bg-blob.b2{width:200px;height:200px;right:-60px;top:12%;background:rgba(107,112,92,.25);animation-delay:-4s}
@keyframes morph{0%,100%{border-radius:60% 40% 55% 45%/55% 45% 60% 40%}50%{border-radius:40% 60% 45% 55%/45% 60% 40% 55%;transform:rotate(18deg)}}
.cover h1,.hero h2{font:400 clamp(2.8rem,12vw,4.6rem)/1.05 var(--f-head);color:var(--text);display:flex;flex-direction:column;align-items:center;margin:.8rem 0}
.cover h1 span,.hero h2 span{font:700 2.4rem var(--f-script);color:var(--accent);line-height:1}
.blob{width:210px;height:210px;margin:.8rem auto;border:6px solid #fff;box-shadow:0 14px 34px rgba(90,61,49,.25);animation:morph 10s ease-in-out infinite}
.date-line{color:var(--text);font-weight:500}
.guest-box{border-radius:22px 22px 22px 6px;border:0;background:rgba(255,255,255,.7);backdrop-filter:blur(6px)}

.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#f3d9c4,#efc7ae)}
.hero>*{position:relative;z-index:1}
.hero .bg-blob{z-index:0}
.quote{color:var(--text)}
.duo{display:grid;gap:1.6rem;margin-top:1.6rem}
@media(min-width:640px){.duo{grid-template-columns:1fr 1fr}}
.sticker{padding:1.8rem 1.2rem;background:#fff;border-radius:36% 64% 60% 40%/50% 40% 60% 50%;box-shadow:0 12px 28px rgba(90,61,49,.15);transform:rotate(-2deg)}
.sticker.alt{border-radius:60% 40% 40% 60%/45% 55% 45% 55%;transform:rotate(2deg);background:#fff6ee}
.sticker h3{font:400 2rem var(--f-head);color:var(--text)}
.mono.blob-m{margin:0 auto .8rem;border-radius:50%;border-color:var(--accent);background:#f8eadc;font:700 3.4rem var(--f-script)}
.card.note{border:2px dashed var(--accent);background:#fff;border-radius:18px;transform:rotate(-1deg)}
.card.note:nth-child(2){transform:rotate(1.2deg)}
.card.note h3{font:700 2rem var(--f-script)}
.gallery.shapes .g,.gallery.shapes .g-img{border:5px solid #fff;box-shadow:0 8px 20px rgba(90,61,49,.18)}
.shapes>*:nth-child(1){border-radius:50%}
.shapes>*:nth-child(2){border-radius:30px 30px 4px 30px}
.shapes>*:nth-child(3){border-radius:50% 50% 8px 8px}
.shapes>*:nth-child(4){border-radius:8px 50% 50% 8px}
.shapes>*:nth-child(5){border-radius:30px 4px 30px 30px}
.shapes>*:nth-child(6){border-radius:50% 8px 50% 8px}
.countdown div{border:0;background:#fff;border-radius:50% 50% 50% 14px;box-shadow:0 6px 16px rgba(90,61,49,.12)}
.countdown b{color:var(--accent);font-family:var(--f-head)}
.footer h3{font:400 clamp(2.4rem,9vw,3.4rem) var(--f-head);color:var(--text)}
