
[hidden]{display:none!important}body button,body input,body textarea{font:inherit}body button{cursor:pointer}body .site-controls{position:absolute;top:12px;right:18px;z-index:20;display:flex;align-items:center;gap:10px}.languages{display:flex;border:1px solid #d591ad;border-radius:5px;overflow:hidden;background:#fff8fc}.languages button{padding:7px 12px;background:none;border:0;color:#84344f;font-size:14px;min-height:40px}.languages button[aria-pressed=true]{background:#9d315e;color:#fff}.music-control{width:42px;height:42px;border:1px solid #d591ad;border-radius:50%;background:#fff8fc;color:#9d315e;font-size:18px}.music-control:hover{background:#f9d1df}.envelope-screen{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:85px 20px 30px;background:#fce4eb;text-align:center;overflow:auto}.envelope-screen h2{font:400 88px/1.1 'Sacramento',cursive;color:#9d315e;margin:10px 0 0}.envelope-button{max-width:540px;width:100%;padding:0;background:none;border:0;perspective:800px;color:#9d315e}.envelope-button img{width:100%;height:auto;display:block;transition:transform .5s,filter .5s}.envelope-button:hover img{transform:translateY(-8px) rotate(-2deg);filter:drop-shadow(0 12px 10px #9d315e25)}.envelope-button span{display:block;font-size:19px;font-weight:900;padding:4px 0 12px}.music-choice{display:flex;gap:10px;align-items:center;justify-content:center;font-size:16px}.music-choice input{accent-color:#9d315e;width:20px;height:20px}.song-credit{margin:8px 0 0;font-size:14px}.envelope-screen.opening{animation:envelope-away .75s ease forwards;pointer-events:none}.envelope-screen.opening img{transform:translateY(-35px) rotateX(25deg) scale(1.06)}@keyframes envelope-away{0%,35%{opacity:1}100%{opacity:0;transform:scale(1.06)}}body .hero{padding-top:76px;min-height:870px}body .button{transition:transform .2s,box-shadow .2s,background .2s}body .button:hover{transform:translateY(-3px);box-shadow:0 6px 15px #9d315e20}body .gallery figure{transition:transform .3s,box-shadow .3s}body .gallery figure:hover{transform:translateY(-8px) rotate(0);box-shadow:0 14px 25px #9d315e25}.reveal-ready{opacity:0;transform:translateY(18px);transition:opacity .7s,transform .7s}.reveal-ready.visible{opacity:1;transform:none}.rsvp-section{background:#fffafd;border-top:1px dashed #ca7291}.rsvp-inner{max-width:650px;margin:auto}.rsvp-inner>p,.rsvp-inner>h2{text-align:center}.rsvp-inner>p{margin:12px 0 24px}.rsvp-inner form{margin-top:30px}.rsvp-inner fieldset{border:0;padding:0;margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.rsvp-inner label{display:block;margin-bottom:20px;font-size:16px;font-weight:800}.rsvp-inner label span{display:block;margin-bottom:6px}.rsvp-inner input:not([type=radio]),.rsvp-inner textarea{display:block;width:100%;border:1px solid #cc92a9;background:#fff;border-radius:4px;padding:11px;color:#512c40;min-height:46px}.rsvp-inner textarea{resize:vertical}.rsvp-inner .attendance{margin:6px 0 20px}.attendance legend{font-weight:900;margin-bottom:10px}.attendance label{display:flex;align-items:center;gap:10px;margin:10px 0;font-weight:500}.attendance label span{margin:0}.attendance input{width:20px;height:20px;accent-color:#9d315e}.rsvp-inner fieldset:disabled{opacity:.5}.rsvp-inner button:disabled{cursor:not-allowed}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}#rsvp-result{min-height:26px;font-weight:800}#rsvp-availability{font-size:16px;color:#84344f}body input:focus-visible,body textarea:focus-visible,body button:focus-visible{outline:3px solid #426554;outline-offset:4px}
@media(max-width:600px){body .hero{padding-top:80px;min-height:730px}.site-controls{right:12px!important}.languages button{padding:6px 10px}.envelope-screen h2{font-size:72px}.envelope-button{max-width:440px}.form-grid{grid-template-columns:1fr;gap:0}.envelope-screen .kicker{font-size:13px}.rsvp-inner .headline{font-size:27px}body h1{font-size:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal-ready{opacity:1;transform:none}}

.envelope-button span{display:table;margin:8px auto 18px;padding:10px 24px;border-bottom:1px solid #bb6c8b;color:#84344f;font-size:20px;font-weight:800;animation:open-hint 2.6s ease-in-out infinite}.envelope-button:hover span{color:#60233d}.envelope-button:focus-visible{outline:3px solid #9d315e;outline-offset:6px;border-radius:8px}@keyframes open-hint{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(-4px);opacity:.75}}
