:root{--teal:#00515b;--pink:#eec7bf;--mango:#e2b055;--pear:#f0f2cf;--sky:#dcf4f7;--paper:#fae1cb;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;color:var(--teal);background:var(--pear);font:16px/1.6 Arial,sans-serif}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}a{color:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}h2{font:400 clamp(2.6rem,5.5vw,4.8rem)/1.08 var(--serif);margin:10px 0 34px;letter-spacing:-.035em}h3{font:400 1.75rem/1.25 var(--serif)}em{font-weight:400}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--teal);outline-offset:5px}.section{padding:80px max(24px,calc((100vw - 1100px)/2));text-align:center;position:relative}.eyebrow{font-size:.875rem;letter-spacing:.16em;font-weight:600}.hero{min-height:100svh;display:flex;align-items:center;justify-content:center;background:var(--pink) url('assets/paper.webp?_ship=4b54q5p');overflow:hidden;position:relative;border-bottom:2px solid var(--teal)}.hero:before,.hero:after{content:'';position:absolute;border:1px solid var(--teal);inset:18px;border-radius:46% 46% 10px 10px;pointer-events:none}.hero:after{inset:25px}.hero img{display:block;width:100%;max-width:1100px;height:auto;position:relative;z-index:1;box-shadow:0 12px 70px #00515b20}.intro{background:var(--pear);padding-top:50px;padding-bottom:55px}.intro-copy{font-size:clamp(1rem,2.3vw,1.5rem);letter-spacing:.12em;line-height:1.8;margin:16px 0 30px}.spark{font:48px/1 var(--serif)}.wave{display:block;font:42px/1 var(--serif);letter-spacing:-4px;margin-top:28px}.button{display:inline-flex;justify-content:center;align-items:center;gap:18px;background:var(--teal);color:var(--pear);padding:17px 25px;border:1px solid var(--teal);border-radius:100px;text-decoration:none;font-size:.875rem;letter-spacing:.07em;font-weight:600;line-height:1.5;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-3px);box-shadow:0 5px 0 #00515b25}.button:active{transform:translateY(1px)}.story{background:var(--sky);border-radius:50% 50% 0 0 / 35px 35px 0 0}.story-medallion{display:flex;align-items:center;justify-content:center;gap:40px;max-width:740px;margin:auto;padding:35px 20px;border-top:1px solid;border-bottom:1px solid}.story-medallion p{font:clamp(1.5rem,3vw,2.5rem)/1.45 var(--serif)}.family{background:var(--pink)}.family-grid,.itinerary-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.paper{position:relative;background:var(--paper) url('assets/paper.webp?_ship=4b54q5p');border:1px solid var(--teal);box-shadow:7px 8px 0 #00515b15}.family-card{border-radius:70px 70px 30px 30px;padding:48px 28px;outline:1px solid var(--teal);outline-offset:-9px}.family-card h3{font-size:clamp(1.4rem,2.5vw,2rem);margin-top:24px}.amp{display:block;font-style:italic;font-size:2.3rem;margin:8px}.itinerary{background:var(--teal);color:var(--pear)}.itinerary h2{margin-bottom:42px}.itinerary .paper{color:var(--teal);padding:30px 35px 42px;border-radius:100px 100px 24px 24px;outline:1px solid var(--teal);outline-offset:-10px}.itinerary-grid{align-items:stretch;max-width:950px;margin:auto}.day{font-size:1rem;letter-spacing:.1em;display:flex;align-items:center;justify-content:center;gap:15px;border-bottom:1px solid #00515b55;padding-bottom:15px}.day strong{font:4rem/1.1 var(--serif)}.art{object-fit:cover;display:block}.toast{width:112px;height:133px;margin:28px auto 20px;border-radius:45%}.time{letter-spacing:.12em;font-size:1rem;margin-top:8px}.event{display:flex;text-align:left;align-items:center;gap:22px;padding:22px 0;border-bottom:1px solid #00515b35}.event:last-child{border:0;padding-bottom:0}.event h3{font-size:1.5rem}.event-mark{font:italic 1.5rem var(--serif);opacity:.7}.dress{background:var(--mango);display:flex;justify-content:center;align-items:center;gap:34px;overflow:hidden}.dress-content{position:relative;z-index:1}.dress h2{font-size:clamp(3.5rem,7vw,6.8rem)}.flower{width:120px;height:250px;border-radius:65% 25% 45% 35%;transform:rotate(-8deg)}.palm{width:160px;height:210px;border-radius:45% 45% 30% 60%;transform:rotate(8deg)}.dress-rules{display:flex;gap:45px;text-align:left}.dress-rules h3{font:600 .875rem Arial,sans-serif;letter-spacing:.13em;margin-bottom:10px}.dress-rules p{max-width:220px}.information{background:var(--sky)}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.info-card{border:1px solid var(--teal);outline:1px solid var(--teal);outline-offset:-8px;color:var(--teal);background:var(--pear);border-radius:90px 90px 28px 28px;min-height:285px;padding:35px 20px 27px;display:flex;align-items:center;flex-direction:column;gap:20px;font-weight:600;letter-spacing:.08em;box-shadow:5px 6px 0 #00515b15;transition:transform .25s}.info-card:nth-child(2){background:var(--pink)}.info-card:nth-child(3){background:var(--mango)}.info-card:hover{transform:translateY(-6px) rotate(-1deg)}.info-card:active{transform:scale(.98)}.info-card svg{width:57px;height:57px;fill:none;stroke:currentColor;stroke-width:1.6}.open-label{font-size:.875rem;letter-spacing:0;font-weight:400;margin-top:auto}.rsvp{background:var(--pink);display:grid;grid-template-columns:1fr 1.15fr;gap:60px;text-align:left}.rsvp-heading p:not(.eyebrow){max-width:330px}.rsvp-heading h2{font-size:clamp(3rem,5vw,5rem)}.rings{width:110px;height:140px;border-radius:45%;margin-top:35px;transform:rotate(-9deg)}form.paper{border-radius:45px 45px 20px 20px;padding:35px}form label,legend{font-size:.9375rem;font-weight:600}input:not([type=radio]),textarea{width:100%;border:1px solid #00515b80;background:#fff9;color:var(--teal);border-radius:10px;padding:12px 14px;margin:8px 0 22px;min-height:48px}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#386e74}fieldset{border:0;margin:0 0 20px;padding:0}legend{margin-bottom:10px}.radio{display:flex;align-items:center;gap:10px;font-weight:400;margin:8px 0;min-height:35px}input[type=radio]{accent-color:var(--teal);width:20px;height:20px}.optional{font-weight:400;font-size:.875rem}.submit{width:100%;padding:17px 15px}.form-note,#rsvp-status{font-size:.875rem;line-height:1.6;margin-top:15px}.text-link{display:inline-block;margin:18px 0;text-underline-offset:5px;font-size:.875rem;font-weight:600}.text-link[hidden]{display:none}footer{background:var(--teal);color:var(--pear);text-align:center;padding:40px 20px}footer p{font:2.5rem var(--serif)}footer p span{font-style:italic;color:var(--pink)}footer small{display:block;font-size:.75rem;letter-spacing:.15em;margin-top:16px}dialog{background:var(--pear);color:var(--teal);width:min(650px,calc(100% - 28px));max-height:90svh;border:1px solid var(--teal);border-radius:35px;padding:45px 35px;box-shadow:0 15px 80px #00303855}dialog::backdrop{background:#003c45b8;backdrop-filter:blur(5px)}dialog h2{font-size:2.7rem;margin-bottom:25px}dialog .close{position:absolute;right:15px;top:10px;border:0;background:transparent;color:var(--teal);font-size:2rem;width:44px;height:44px}dialog .button{margin-top:22px}.map-title{font:600 1rem Arial,sans-serif;letter-spacing:.1em;margin-top:35px}object{width:100%;height:350px;display:block;border:1px solid #00515b55;margin:24px 0}.bank{border-top:1px solid;margin-top:28px;padding-top:24px}.bank h3{font:600 1rem Arial,sans-serif}.bank-name{font:2.1rem var(--serif);margin:16px 0}dt{font-size:.8rem;letter-spacing:.05em;margin-top:18px}dd{margin:4px 0;overflow-wrap:anywhere;font-size:1.1rem}.copy-buttons{display:flex;gap:12px;flex-wrap:wrap}.copy-buttons .button{font-size:.75rem;padding:12px 18px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.reveal{animation:appear .7s both}@keyframes appear{from{opacity:.6;transform:translateY(12px)}to{opacity:1;transform:none}}@media(min-width:1100px){.hero img{max-width:min(1100px,125svh)}}@media(max-width:700px){.section{padding:58px 22px}.hero img{width:100%;max-width:none}.hero{min-height:100svh}.hero:before{inset:14px}.hero:after{inset:21px}.intro-copy{font-size:1rem;letter-spacing:.08em}.family-grid,.itinerary-grid,.rsvp{grid-template-columns:1fr;gap:25px}.family-card{padding:38px 22px}.story-medallion{gap:15px;padding:28px 0}.story-medallion .spark{font-size:30px}.dress{gap:0;padding-top:65px;padding-bottom:65px}.dress-rules{flex-direction:column;gap:25px;text-align:center}.dress-rules p{max-width:230px}.flower{position:absolute;left:-45px;width:105px;bottom:30px;opacity:.85}.palm{position:absolute;right:-52px;top:28px;width:120px;height:170px}.info-grid{grid-template-columns:1fr;gap:20px;max-width:400px;margin:auto}.info-card{border-radius:60px 20px 60px 20px;min-height:150px;display:grid;grid-template-columns:65px 1fr;gap:12px;text-align:left;padding:28px}.info-card svg{grid-row:span 2}.open-label{margin-top:0}.rsvp-heading{text-align:center}.rsvp-heading p:not(.eyebrow){margin:auto}.rings{display:none}form.paper{padding:28px 20px}.rsvp-heading h2 br{display:none}.rsvp-heading h2 em{display:block}dialog{padding:48px 24px 30px}.button{letter-spacing:.035em;font-size:.8rem}object{display:none}.itinerary .paper{padding:30px 25px}.day strong{font-size:3.5rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
.mobile-hero{display:none}@media(max-width:700px){.hero>img{display:none}.hero:before,.hero:after{display:none}.mobile-hero{display:flex;position:relative;width:100%;min-height:100svh;align-items:center;justify-content:center;padding:105px 14px 95px;overflow:hidden}.hero-letter{position:relative;z-index:2;width:100%;border:1px solid;outline:1px solid;outline-offset:-8px;border-radius:46% 46% 25% 25% / 16% 16% 10% 10%;text-align:center;padding:65px 6px 35px;background:var(--paper) url('assets/paper.webp?_ship=4b54q5p');box-shadow:0 7px 12px #00515b25}.hero-letter p{font-size:.875rem;letter-spacing:.13em;margin-bottom:30px}.hero-name{display:block;font:clamp(4.3rem,20vw,8rem)/1 var(--serif);letter-spacing:-.06em}.hero-name.ricardo{font-size:clamp(2.8rem,13vw,5.3rem);letter-spacing:-.075em}.hero-amp{font:italic 4.3rem/1.2 var(--serif);display:block;margin:3px 0 10px}.hero-star{font:2.5rem/1 var(--serif);display:block;margin-top:25px}.mobile-hero img{position:absolute;z-index:1;height:auto;box-shadow:none;object-fit:cover}.hero-parasol{width:49%!important;top:0;left:0;border-radius:0 0 70% 0}.hero-palm{width:49%!important;right:0;top:0;border-radius:0 0 0 70%}.mobile-hero .hero-coconut{width:105px!important;right:-7px;bottom:15px;z-index:3;border-radius:45% 0 0 45%;transform:rotate(8deg)}}

.itinerary h2{margin-bottom:14px}.itinerary-month{margin-bottom:36px;letter-spacing:.24em}.icebreaker-dress{margin-top:20px;font-size:1rem}.transfer-phone{margin-top:14px;font-size:1.2rem}
.polaroid-gallery{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:48px 34px;margin:58px auto 10px;padding:12px;max-width:1100px}.polaroid-entry{flex:0 1 calc((100% - 68px)/3);min-width:0;--tilt:-2deg}.polaroid-entry:nth-child(even){--tilt:2deg}.polaroid{display:block;width:100%;padding:9px 9px 28px;background:#fffdf7;border:1px solid #00515b15;border-radius:2px;box-shadow:0 5px 15px #00515b22;transform:rotate(var(--tilt));transition:transform .25s ease,box-shadow .25s ease}.polaroid img{display:block;width:100%;height:auto;object-fit:contain;filter:none;border-radius:0}.polaroid-entry.enter-photo{animation:photo-arrive 700ms ease both;animation-delay:var(--photo-delay)}@keyframes photo-arrive{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media(hover:hover){.polaroid:hover{transform:translateY(-6px) rotate(var(--tilt));box-shadow:0 12px 22px #00515b28}}.photo-viewer{padding:60px 16px 20px;background:#091b1ee8;border:0;border-radius:10px;width:fit-content;max-width:96vw;max-height:96svh;overflow:auto}.photo-viewer::backdrop{background:#000d;backdrop-filter:none}.photo-viewer .close{color:white;top:6px;right:10px;z-index:2;background:#091b1e;border-radius:50%}.photo-viewer .close:focus-visible{outline-color:white}.photo-viewer img{display:block;object-fit:contain;width:auto;height:auto;max-width:calc(96vw - 32px);max-height:calc(96svh - 80px);margin:auto}@media(max-width:900px){.polaroid-entry{flex-basis:calc((100% - 34px)/2)}}@media(max-width:600px){.polaroid-gallery{gap:40px;margin-top:36px;padding:10px}.polaroid-entry{flex-basis:100%;max-width:380px}.polaroid{padding:7px 7px 23px}}@media(prefers-reduced-motion:reduce){.polaroid-entry.enter-photo{animation:none!important;opacity:1;transform:none}.polaroid{transition:none}}
.event-map{background:var(--pear)}.event-map h2{margin-bottom:14px}.map-hint{margin-bottom:26px}.map-preview{display:block;padding:10px;background:#fffdf7;border:1px solid #00515b55;border-radius:18px;width:100%;max-width:1100px;margin:0 auto 28px;box-shadow:0 4px 16px #00515b18;overflow:hidden}.map-preview img{display:block;width:100%;height:auto;object-fit:contain;border-radius:9px}.map-viewer{inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;border:0;border-radius:0;padding:0;background:#10292d;color:white;overflow:hidden}.map-viewer[open]{display:flex;flex-direction:column}.map-toolbar{padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#00515b;flex-shrink:0;z-index:1}.map-controls{display:flex;gap:7px;align-items:center}.map-controls button{min-height:44px;min-width:44px;border:1px solid #ffffff80;border-radius:8px;background:transparent;color:white;padding:7px 11px;font-size:1rem}.map-viewer .close{position:static;width:auto;height:auto;font-size:1rem}.map-controls button:focus-visible,#map-pan:focus-visible{outline-color:var(--mango)}#map-pan{flex:1;min-height:0;overflow:auto;touch-action:none;overscroll-behavior:contain;cursor:grab}#map-pan.dragging{cursor:grabbing}#map-canvas{min-width:100%;min-height:100%;display:flex;align-items:center;justify-content:center;width:max-content;height:max-content}#map-full{display:block;max-width:none;object-fit:contain;flex:none;user-select:none;-webkit-user-select:none}@media(max-width:600px){.map-toolbar{flex-wrap:wrap;padding:10px 12px}.map-toolbar>span{font-size:.875rem}.map-controls{gap:5px}.map-controls button{padding:7px 9px}.map-preview{padding:6px;border-radius:12px}}

.map-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
