:root{
  --wine:#3f2c4d;--wine-dark:#33233c;--lilac:#8b6b9b;--accent:#a781a8;
  --champagne:#c5a77a;--paper:#fffaf5;--paper2:#f9f0f2;
  --shadow:0 24px 90px rgba(16,11,32,.29);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-width:280px;font-family:"DM Sans",Arial,sans-serif;color:var(--wine-dark);background:radial-gradient(ellipse at 8% 6%,rgba(165,135,191,.21),transparent 34%),radial-gradient(ellipse at 92% 92%,rgba(200,163,179,.27),transparent 28%),#16172a}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.layout{width:min(100%,700px);margin:auto;padding:26px 16px 29px}
.brand-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 3px 19px;color:#fff}
.brand{display:flex;gap:10px;align-items:center}.brand-logo{display:grid;place-items:center;width:37px;height:37px;border-radius:12px;background:linear-gradient(135deg,#6175e8,#b178dd);font-size:24px;font-weight:800;box-shadow:0 8px 18px #0003}
.brand strong{font-size:13px;letter-spacing:.02em}.brand small{display:block;font-size:8px;letter-spacing:.2em;color:#c9c3df;margin-top:2px}
.brand-right{font-size:10px;letter-spacing:.17em;color:#bfb1ca}
.invitation{position:relative;isolation:isolate;overflow:hidden;width:min(100%,590px);margin:auto;background:radial-gradient(ellipse at 50% 10%,#fffdfa 0%,transparent 48%),radial-gradient(ellipse at 18% 90%,#f8ecf1 0%,transparent 47%),linear-gradient(165deg,#fdf9f8 0%,#fff9f6 56%,#faf1f3 100%);box-shadow:var(--shadow);border:7px solid #f1e2e5;border-radius:3px;text-align:center}
.paper-grain{pointer-events:none;position:absolute;inset:0;z-index:-1;opacity:.18;background-image:repeating-linear-gradient(0deg,transparent 0px,transparent 5px,rgba(108,72,83,.06) 6px,transparent 7px),repeating-linear-gradient(90deg,transparent 0px,transparent 6px,rgba(99,73,109,.05) 7px,transparent 8px)}
.inner-frame{pointer-events:none;position:absolute;inset:13px;border:1px solid rgba(172,136,102,.68);z-index:0}.inner-frame:before,.inner-frame:after{content:"";position:absolute;width:22px;height:22px;border:2px solid #c8a980;opacity:.65}.inner-frame:before{left:-4px;top:-4px;border-right:0;border-bottom:0}.inner-frame:after{right:-4px;bottom:-4px;border-left:0;border-top:0}
.flowers{position:absolute;width:205px;height:220px;opacity:.75;pointer-events:none;z-index:0;filter:drop-shadow(0 6px 5px rgba(95,67,101,.08))}.flowers-top-left{top:-50px;left:-48px;transform:rotate(-16deg)}.flowers-top-right{top:-38px;right:-57px;transform:scaleX(-1) rotate(8deg)}.flowers-bottom-left{bottom:-77px;left:-95px;transform:rotate(180deg)}.flowers-bottom-right{bottom:-76px;right:-92px;transform:scaleX(-1) rotate(180deg)}
.sparkle{position:absolute;z-index:0;color:var(--champagne)}.sparkle-a{top:19%;left:13%;font-size:14px}.sparkle-b{top:29%;right:15%;font-size:22px}.sparkle-c{bottom:19%;left:9%;font-size:14px}
.invitation-content{position:relative;z-index:1;padding:87px 49px 50px}
.invitation-overline{font-size:10px;font-weight:700;letter-spacing:.28em;color:#9c7a90;display:flex;justify-content:center;align-items:center;gap:13px}.tiny-line{display:inline-block;width:32px;height:1px;background:#c7a37a}
.opening-copy{font-family:"Playfair Display",Georgia,serif;color:#766477;font-size:15px;line-height:1.7;max-width:370px;margin:19px auto 1px;font-style:italic}
.age-crest{position:relative;display:flex;align-items:baseline;justify-content:center;color:var(--wine);margin:8px auto -11px;height:120px}.age-crest>span:not(.crest-crown){font-family:"Playfair Display",Georgia,serif;font-size:103px;letter-spacing:-.1em;font-weight:400;line-height:1.14;text-shadow:0 4px 16px #c8abb73d}.age-crest em{font-family:"Great Vibes","Brush Script MT",cursive;font-size:33px;color:#a87da9;transform:translate(8px,8px) rotate(-8deg)}.crest-crown{position:absolute;font-size:25px;top:4px;left:calc(50% - 61px);color:#c4a47e}
.celebrant{font-family:"Great Vibes","Brush Script MT",Georgia,serif;font-size:clamp(76px,15vw,102px);font-weight:400;color:#7a527f;margin:8px 0 0;line-height:1.14;text-shadow:0 3px 7px rgba(88,48,110,.09)}
.small-subtitle{font-size:10px;letter-spacing:.31em;font-weight:700;color:#937994;margin:11px auto 0}
.ornament{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--champagne);margin:22px auto 19px;font-size:13px}.ornament span{width:73px;height:1px;background:linear-gradient(to right,transparent,#c9a77f)}.ornament span:last-child{transform:scaleX(-1)}
.invite-copy{font-family:"Playfair Display",Georgia,serif;color:#69586b;font-size:15px;line-height:1.75;max-width:365px;margin:0 auto 29px}.invite-copy strong{display:block;font-weight:600;color:#67466b;margin-top:6px}
.event-details{border-top:1px solid rgba(172,136,102,.42);border-bottom:1px solid rgba(172,136,102,.42);display:grid;grid-template-columns:1fr 1px 1fr;align-items:center;gap:16px;padding:25px 0;margin:0 auto 27px}
.detail-eyebrow{display:block;letter-spacing:.19em;font-size:9px;font-weight:700;color:#a68a9b}
.date-main{display:flex;justify-content:center;align-items:center;gap:9px;margin:8px auto 3px;color:#513a55}.date-main strong{font-family:"Playfair Display",Georgia,serif;font-size:52px;line-height:.95;font-weight:500}.date-main div{display:flex;flex-direction:column;text-align:left;gap:1px;letter-spacing:.11em;font-size:13px;font-weight:700}.date-main div span:last-child{font-size:12px;font-weight:500;color:#8b7192}.date-separator{width:1px;height:44px;background:#c5a77a}.day-line{display:block;font-size:11px;letter-spacing:.11em;font-weight:700;color:#6b536f;margin-top:8px}
.detail-divider{width:1px;height:83px;background:rgba(172,136,102,.42)}
.venue-block strong{font-family:"Playfair Display",Georgia,serif;display:block;font-size:18px;font-weight:600;line-height:1.3;margin:12px 0 9px;color:#513a55}.venue-block>span:last-child{display:block;color:#806b7d;font-size:11px;line-height:1.55}
.rsvp-heading>span{font-size:12px;letter-spacing:.22em;color:#7c5b82;font-weight:700}.rsvp-heading p{font-size:12px;line-height:1.6;margin:7px 0 16px;color:#817384}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 auto 19px}.action{min-width:0;min-height:57px;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:8px;text-decoration:none;font-size:12px;font-weight:700;line-height:1.2;padding:10px 8px;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.action:hover{transform:translateY(-2px)}.action:focus-visible{outline:3px solid #a372bd;outline-offset:3px}.action svg{width:19px;height:19px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.action .action-arrow{width:13px;height:13px}.action-rsvp{background:#67486e;color:#fff;box-shadow:0 6px 14px rgba(103,72,110,.23)}.action-rsvp:hover{background:#513756}.action-map{color:#64486b;border:1.2px solid #9b829f;background:#fff9fd}.action-map:hover{background:#f5edf6}
.countdown{border-radius:8px;padding:11px;display:flex;flex-direction:column;gap:5px;background:rgba(157,122,155,.09);border:1px solid rgba(155,130,159,.2)}.countdown-label{font-size:9px;letter-spacing:.2em;font-weight:700;color:#9d7d94}#countdown-text{font-size:12px;color:#5a435f;font-weight:700;font-variant-numeric:tabular-nums}
.closing{font-family:"Great Vibes","Brush Script MT",cursive;font-size:29px;color:#865f89;margin:22px 0 0}.closing span{font-family:Georgia,serif;color:#ba86a3}
.outside-footer{color:#b3aec8;text-align:center;max-width:590px;margin:19px auto 0;font-size:11px;line-height:1.5}.outside-footer p{margin:7px 0}.outside-footer a{color:#e7d7f5;text-decoration:underline;text-underline-offset:3px}
@media(max-width:520px){.layout{padding:15px 9px 25px}.brand-bar{padding:0 5px 12px}.brand-right{font-size:8px}.invitation{border-width:5px}.inner-frame{inset:10px}.invitation-content{padding:76px 28px 42px}.flowers{width:170px;height:185px}.flowers-top-left{top:-48px;left:-54px}.flowers-top-right{top:-40px;right:-57px}.opening-copy{font-size:14px}.age-crest{height:109px}.age-crest>span:not(.crest-crown){font-size:93px}.celebrant{font-size:clamp(65px,18.5vw,90px)}.event-details{gap:11px}.venue-block strong{font-size:17px}.date-main strong{font-size:48px}.action{min-height:55px;font-size:11px;gap:6px}}
@media(max-width:355px){.invitation-content{padding:73px 21px 37px}.flowers{width:147px}.age-crest>span:not(.crest-crown){font-size:85px}.age-crest{height:100px}.celebrant{font-size:66px}.date-main strong{font-size:40px}.date-main div{font-size:11px}.event-details{gap:7px}.venue-block strong{font-size:15px}.action{font-size:10px;padding:9px 4px;gap:5px}.action svg{width:16px;height:16px}.action .action-arrow{display:none}.small-subtitle{font-size:9px}.rsvp-heading p{font-size:11px}}
@media(prefers-reduced-motion:no-preference){.invitation{animation:appear .7s ease-out both}.sparkle{animation:twinkle 3.5s ease-in-out infinite}.sparkle-b{animation-delay:1.1s}.sparkle-c{animation-delay:2s}@keyframes appear{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes twinkle{0%,100%{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1.12)}}}
