/* Final typography and wedding gift cards. QR source images remain unchanged. */
:root{--name-font:"Playfair Display",Georgia,serif}
.names{font:italic 500 clamp(46px,5.1vw,72px)/1.28 var(--name-font);letter-spacing:-1.5px}
.names>span{padding:0;white-space:nowrap}
.names>i{font-size:37px;margin:10px 0;color:var(--rose)}
.envelope-card{font:500 25px/1.25 var(--name-font);padding-top:16px}
.cover-couple{font:italic 500 clamp(21px,3vw,29px)/1.45 var(--name-font);letter-spacing:-.5px}
.cover h2{font:400 clamp(20px,2.5vw,27px)/1.5 var(--serif);max-width:440px;margin:12px 0 32px;letter-spacing:0}
.guest-name{font:500 clamp(24px,2.8vw,35px)/1.5 var(--serif);max-width:620px;letter-spacing:0}
.family-copy h3{font:italic 500 clamp(30px,3.4vw,42px)/1.4 var(--name-font);letter-spacing:-.6px}
.signature,.closing .signature{font:italic 500 clamp(23px,3vw,31px)/1.5 var(--name-font);letter-spacing:-.6px}
.wedding-gifts{isolation:isolate;overflow:hidden;text-align:center;background:url('/assets/floral-corner.svg') left top/350px no-repeat,url('/assets/floral-corner.svg') right bottom/310px no-repeat,radial-gradient(ellipse at 80% 15%,#ead4cf88,transparent 60%),linear-gradient(145deg,#edf0e3,#faf3e6 55%,#eadfd180)}
.wedding-gifts::before{content:"";position:absolute;inset:24px;border:1px solid #b08b5e40;border-radius:240px 240px 20px 20px;z-index:-1;pointer-events:none}
.gift-envelope{width:72px;height:51px;margin:0 auto 23px;position:relative;display:grid;place-items:center;border:1px solid #b08b5e88;border-radius:4px;background:linear-gradient(145deg,#fff9ee,#e7d9bd);box-shadow:0 9px 20px #294e4010;transform:rotate(-8deg);animation:float 7s ease-in-out infinite}
.gift-envelope::before{content:"";position:absolute;inset:0;background:#efe4cf;clip-path:polygon(0 0,50% 62%,100% 0);border-radius:3px}
.gift-envelope svg{position:relative;width:26px;height:26px;color:var(--rose);margin-top:10px}
.gift-intro{max-width:590px;margin:23px auto 0;font-size:12px;line-height:2.1;color:#687562}
.gift-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px;max-width:840px;margin:auto;align-items:stretch}
.gift-card{position:relative;padding:27px 30px 24px;background:linear-gradient(170deg,#fffdf6,#fbf6ea);border:1px solid #c0a57e88;border-radius:150px 150px 12px 12px;box-shadow:0 20px 40px #294e400c;transition:transform .6s,box-shadow .6s}
.gift-card::before{content:"";position:absolute;inset:8px;border:1px solid #d3c7ae7a;border-radius:143px 143px 6px 6px;pointer-events:none}
.gift-card:hover{box-shadow:0 24px 45px #294e4018}
.gift-card-top{display:flex;flex-direction:column;align-items:center;gap:9px;margin:5px 0 14px}
.gift-card-top svg{width:22px;height:22px;color:var(--rose)}
.gift-side{font:italic 24px/1.4 var(--serif);color:var(--rose)}
.gift-bank{font:500 10px/1.5 var(--sans);letter-spacing:2px;color:var(--gold)}
.gift-card h3{font:500 clamp(15px,1.7vw,20px)/1.5 var(--name-font);letter-spacing:.3px;margin:8px 0 22px}
.gift-qr-frame{padding:12px;background:white;border:1px solid #e3dbcd;border-radius:8px;box-shadow:0 5px 16px #294e4007;max-width:290px;margin:0 auto;position:relative}
.gift-qr-frame::before,.gift-qr-frame::after{content:"";position:absolute;width:23px;height:23px;pointer-events:none;border:1px solid var(--gold);opacity:.6}
.gift-qr-frame::before{left:-5px;top:-5px;border-right:0;border-bottom:0}.gift-qr-frame::after{right:-5px;bottom:-5px;border-left:0;border-top:0}
.gift-qr-viewport{position:relative;aspect-ratio:1;overflow:hidden;background:#fff}
.gift-qr-viewport img{position:absolute;max-width:none;height:auto;image-rendering:auto;animation:none;transform:none}
.gift-qr-lan img{width:154.48%;left:-27.24%;top:-80.72%}
.gift-qr-duong img{width:157.89%;left:-28.51%;top:-100%}
.gift-account-label{font:400 9px/1.5 var(--sans);letter-spacing:1px;margin-top:24px;text-transform:uppercase;color:#73806c}
.gift-account-number{font:500 20px/1.7 var(--sans);font-variant-numeric:tabular-nums;letter-spacing:1px;margin-top:4px}
.gift-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 18px;margin-top:17px;font:400 10px/1.8 var(--sans);position:relative}
.gift-copy{padding:9px 13px;border:1px solid #82977c60;border-radius:30px;background:#edf0e5;color:var(--ink)}
.gift-actions a{display:inline-flex;align-items:center;gap:7px;padding:9px 0;border-bottom:1px solid #b08b5e66;color:#8b6745}
.gift-actions a span{font-size:16px}.gift-copy:hover{background:#dce5d5}.gift-actions a:hover{color:var(--rose)}
.gift-thanks{font:400 35px/1.5 var(--script);margin:39px auto 0;color:var(--rose)}
.gift-sparkles span{position:absolute;color:var(--gold);opacity:.5;font-size:20px;animation:float 6s ease-in-out infinite;pointer-events:none}
.gift-sparkles span:nth-child(1){left:9%;top:22%}.gift-sparkles span:nth-child(2){right:12%;top:13%;animation-delay:-3s}.gift-sparkles span:nth-child(3){right:5%;bottom:19%;animation-delay:-1s}.gift-sparkles span:nth-child(4){left:7%;bottom:10%;color:var(--rose);font-size:30px;animation-delay:-4s}
@media(max-width:900px){.names{font-size:clamp(40px,5.5vw,58px)}.gift-card{padding:27px 24px 23px}.gift-grid{gap:24px}}
@media(max-width:600px){.names{font-size:clamp(34px,10.4vw,51px);line-height:1.35;letter-spacing:-1px}.names>i{font-size:29px;margin:1px 0}.cover h2{font-size:23px;max-width:290px;margin-bottom:28px}.envelope-card{font-size:23px;line-height:1.2;padding-top:17px}.cover-couple{font-size:22px;max-width:100%;line-height:1.45}.guest-name{font-size:27px;line-height:1.5;max-width:310px}.family-copy h3{font-size:34px}.signature,.closing .signature{font-size:25px}.wedding-gifts{background-size:210px,180px,auto,auto}.wedding-gifts::before{inset:13px;border-radius:170px 170px 12px 12px}.wedding-gifts h2{font-size:42px}.gift-intro{font-size:11px;max-width:290px}.gift-grid{grid-template-columns:1fr;gap:29px;max-width:340px}.gift-card{padding:26px 29px 24px}.gift-card h3{font-size:18px}.gift-card-top{margin-top:0}.gift-actions{font-size:11px}.gift-thanks{font-size:30px;max-width:275px}.gift-sparkles span:nth-child(1){left:5%;top:21%}}
@media(max-width:350px){.cover-couple{font-size:19px}.guest-name{font-size:24px}.gift-card{padding-left:21px;padding-right:21px}.gift-account-number{font-size:18px}.wedding-gifts h2{font-size:36px}.envelope-card{font-size:21px}}
@media(prefers-reduced-motion:reduce){.gift-envelope,.gift-sparkles span{animation:none}.gift-card{transition:none}}
