*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:#402b2e;background:#bd8c8a;font-family:Georgia,'Times New Roman',serif;line-height:1.65;background-image:linear-gradient(#f8e6df22,#f8e6df22),url("rosa-antiguo.jpeg");background-size:cover;background-position:center;background-attachment:fixed}[hidden]{display:none!important}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}h1,h2,p{margin:0}h1,h2{font-weight:400}h1{font-size:clamp(76px,17vw,116px);font-style:italic;line-height:1.1}h2{font-size:clamp(29px,6.8vw,44px);line-height:1.3;font-style:italic}p{font-size:19px}.eyebrow{font-family:Arial,sans-serif;font-size:11px;letter-spacing:.21em;line-height:1.9;font-weight:400;color:#57402e}.ornament{display:flex;align-items:center;justify-content:center;gap:20px;color:#76592d;margin:32px auto;font-size:22px}.ornament:before,.ornament:after{content:'';height:1px;width:75px;background:#ac9464}.button{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:54px;padding:15px 25px;border:1px solid #aa9260;border-radius:30px;background:linear-gradient(130deg,#ddcfab,#f5edd6 40%,#c8b484);box-shadow:0 7px 24px #84734b18;color:#402b2e;text-decoration:none;font:13px/1.5 Arial,sans-serif;letter-spacing:.04em}.button:hover{filter:brightness(1.05)}.button:focus-visible,a:focus-visible{outline:3px solid #674147;outline-offset:5px}.secondary{background:transparent;box-shadow:none}.hint{font:11px/1.6 Arial,sans-serif;color:#5c4143;margin:16px 0}.cover{min-height:100svh;display:grid;place-items:center;padding:24px}.cover-frame{width:min(100%,560px);border:1px solid #a18c60;border-radius:180px 180px 24px 24px;text-align:center;padding:65px 22px 45px;box-shadow:inset 0 0 0 8px #f5ded644}.monogram{font-style:italic;font-size:52px;color:#76592d;margin-bottom:32px}.cover h1{margin:24px 0 12px}.surname{font-size:24px;letter-spacing:.12em}.cover-date{font:12px Arial,sans-serif;letter-spacing:.14em;margin-bottom:32px}main{max-width:680px;margin:auto;padding:28px 20px 70px}.hero{text-align:center;padding:25px 10px 40px}.portrait{width:min(78%,350px);aspect-ratio:3/4;border-radius:180px 180px 7px 7px;overflow:hidden;margin:32px auto;padding:5px;border:1px solid #ab9260}.portrait img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 32%;border-radius:inherit}.small{font-size:10px;margin-bottom:18px}.full-name{font-size:19px;letter-spacing:.12em;margin-top:17px;line-height:1.9}.full-name span{font-size:25px;letter-spacing:.07em}.scroll{font:11px Arial,sans-serif;letter-spacing:.08em;text-decoration:none}.section{text-align:center;padding:58px 30px;margin:20px 0}.section>p{max-width:490px;margin-left:auto;margin-right:auto}.family,.event,.details{border:1px solid #a68e6080;border-radius:120px 120px 18px 18px;background:#f8e6df35}.family h2{margin:28px 0}.amp{display:block;font-size:38px;color:#76592d;margin:13px}.name{font-size:23px!important;margin-top:25px;line-height:1.5}.degrees h2{margin-top:35px}.degrees .amp+h2{margin-top:0}.degrees .ornament+p{margin-top:28px}.story{background:#74414b15;margin-left:-20px;margin-right:-20px;padding-top:50px;padding-bottom:50px}.quote{font-style:italic;font-size:26px;line-height:1.6}.day-name{font:12px Arial,sans-serif;letter-spacing:.24em;margin-top:36px!important}.day{font-size:130px;font-style:italic;line-height:1.2}.month{letter-spacing:.13em;font-size:18px}.hour{font-size:26px;margin:25px auto!important}.countdown{display:flex;justify-content:center;gap:12px;margin:38px 0 0}.countdown>div{border-top:1px solid #ad976b;width:82px;padding-top:14px}.countdown strong{display:block;font-size:30px;font-weight:400}.countdown span{font:9px Arial,sans-serif;letter-spacing:.14em}.event h2{margin:12px 0 28px}.envelope{display:block;width:50px;margin:26px auto}.details h2{margin-bottom:22px}.swatches{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:26px}.swatches i{display:block;width:42px;height:42px;background:var(--swatch);border-radius:50%;margin:0 auto 7px;border:1px solid #aa966b;box-shadow:inset 0 3px 7px #ffffff55}.swatches span{font:13px Arial,sans-serif}footer h2{margin:10px 0 32px}.closing{margin-top:38px!important}.music-control{position:fixed;right:16px;bottom:18px;z-index:4;border:1px solid #9f8c61;border-radius:28px;background:#f1dcd8eb;backdrop-filter:blur(8px);color:#402b2e;font:12px Arial,sans-serif;padding:13px 18px;box-shadow:0 3px 15px #0001}.hero,.section{animation:arrive 1.2s ease both}@keyframes arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(min-width:800px){main{padding-top:45px}.cover-frame{padding-top:65px;padding-bottom:55px}.section{padding:68px 50px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero,.section{animation:none}}@media(max-width:360px){.section{padding:48px 20px}.button{font-size:12px;padding:14px 18px}.eyebrow{font-size:10px}}

.soundtrack{padding:30px 10px}.soundtrack h2{font-size:29px;margin-top:14px}.soundtrack iframe{width:100%;height:auto;aspect-ratio:16/9;min-height:200px;border:0;border-radius:12px}.music-control{text-decoration:none}

.cover-illustration{width:150px;margin:0 auto 24px}.cover-illustration img{display:block;width:100%;height:auto}.cover-frame{padding-top:36px}@media(min-width:800px){.cover-frame{padding-top:36px}}

.rsvp h2{margin:20px 0 30px}.rsvp form{max-width:400px;margin:auto;text-align:left}.rsvp label{display:block;font:15px/1.5 Arial,sans-serif;margin:20px 0 8px}.rsvp input{display:block;width:100%;min-height:50px;border:1px solid #9c7b62;border-radius:12px;padding:12px 14px;background:#fff5efbb;color:#402b2e;font:17px Arial,sans-serif}.rsvp input:focus-visible{outline:3px solid #674147;outline-offset:3px}.rsvp .button{width:100%;margin-top:26px}.rsvp .hint{color:#50383b;margin:6px 0 12px}.rsvp button+.hint{text-align:center;margin-top:14px}

.assigned-places{margin:24px 0;font-size:22px;font-style:italic;text-align:center}.button:disabled{opacity:.55;cursor:default}.rsvp #result{margin:28px auto;max-width:400px}.rsvp #result label{font:14px Arial,sans-serif}

.scroll-control{bottom:calc(72px + env(safe-area-inset-bottom,0px))}.music-control:not(.scroll-control){bottom:calc(18px + env(safe-area-inset-bottom,0px))}.scroll-control:focus-visible{outline:3px solid #674147;outline-offset:4px}.scroll-control:disabled{opacity:.8;cursor:default}
