@import url('https://fonts.googleapis.com/css2?family=Marck+Script&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400;1,500&family=DM+Sans:wght@400;500;600&display=swap');
:root{--ivory:#f4eddf;--cream:#f9f3e9;--deep:#263c30;--olive:#536b4e;--sage:#89977b;--ink:#314636;--sand:#d8c4a0;--outline:#cab896;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--paper:url('assets/paper.webp')}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse at 50% 0%,#f0e7d4,#d4c9af);font-family:var(--serif);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}body.intro-locked{overflow:hidden}button,textarea,input,select{font:inherit}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #4e7458;outline-offset:3px}img{max-width:100%}[hidden]{display:none!important}.skip-to-content{position:absolute;top:-100px;left:12px;z-index:1000;background:#fff;padding:8px}.skip-to-content:focus{top:12px}
.eyebrow,.microcopy,.section-number{font-family:var(--sans);font-size:clamp(.55rem,1.7vw,.68rem);font-weight:500;letter-spacing:.235em;line-height:1.7;color:#58684d}.script-type{font:italic 3rem/.96 var(--serif);margin:0;color:var(--deep)}.watercolor-paper,.paper-section{background:var(--paper) center/cover repeat-y,var(--ivory);position:relative;isolation:isolate;overflow:hidden}.watercolor-paper::before,.paper-section::before{content:'';pointer-events:none;position:absolute;inset:13px;border:1px solid rgba(169,145,105,.2);z-index:0}.botanical{position:absolute;z-index:0;width:clamp(135px,31%,300px);height:clamp(175px,38%,360px);pointer-events:none;background-size:cover;background-repeat:no-repeat;opacity:.86;filter:saturate(1.18) contrast(1.04)}.botanical--lt{top:-10px;left:-12px;background-image:url('assets/flora-left.webp');-webkit-mask-image:radial-gradient(ellipse at top left,#000 25%,transparent 75%);mask-image:radial-gradient(ellipse at top left,#000 25%,transparent 75%)}.botanical--rt{top:-10px;right:-9px;background-image:url('assets/flora-right.webp');-webkit-mask-image:radial-gradient(ellipse at top right,#000 18%,transparent 74%);mask-image:radial-gradient(ellipse at top right,#000 18%,transparent 74%)}.botanical--lb{bottom:-20px;left:-10px;background-image:url('assets/flora-left.webp');transform:scaleY(-1);-webkit-mask-image:radial-gradient(ellipse at top left,#000 25%,transparent 75%);mask-image:radial-gradient(ellipse at top left,#000 25%,transparent 75%)}.botanical--rb{bottom:-20px;right:-10px;background-image:url('assets/flora-right.webp');transform:scaleY(-1);-webkit-mask-image:radial-gradient(ellipse at top right,#000 18%,transparent 74%);mask-image:radial-gradient(ellipse at top right,#000 18%,transparent 74%)}
.intro-stage,.travel-stage,.arrival-stage{position:fixed;inset:0;z-index:120;display:grid;place-items:center;background:#ded5c2;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .8s,visibility .8s}.intro-stage.active,.travel-stage.active,.arrival-stage.active{opacity:1;visibility:visible;pointer-events:auto}.intro-stage{z-index:120}.travel-stage{z-index:121}.arrival-stage{z-index:122}.intro-sheet,.travel-sheet,.arrival-sheet{height:100dvh;width:min(100%,560px);max-height:100dvh;position:relative;box-shadow:0 0 100px rgba(45,45,30,.12);overflow:hidden}.intro-sheet{display:flex;align-items:center;flex-direction:column;justify-content:space-between;padding:clamp(64px,9vh,90px) 18px clamp(25px,5vh,55px)}.intro-heading{z-index:2;display:flex;flex-direction:column;text-align:center;gap:5px}.intro-heading .eyebrow{font-size:.63rem;letter-spacing:.31em}.birdplane{color:var(--deep);font-size:24px;transform:rotate(-24deg);margin-top:13px}.intro-skip{position:absolute;top:18px;right:18px;z-index:10;border:0;background:rgba(248,241,229,.78);padding:10px 12px;color:#665d4b;font:500 .64rem var(--sans);letter-spacing:.06em;border-radius:24px}.intro-skip span{margin-left:5px}.intro-bottom{z-index:4;text-align:center}.intro-bottom .script-type{font-size:3.5rem;line-height:.87;margin-bottom:19px}.outline-pill{display:inline-flex;gap:20px;align-items:center;justify-content:center;border-radius:99px;border:1px solid #9a8769;padding:13px 25px;background:rgba(250,244,233,.84);font:500 .72rem var(--sans);letter-spacing:.07em;color:#45583f;transition:background .2s,transform .2s}.outline-pill:hover{background:#fffaf1;transform:translateY(-2px)}.intro-bottom .microcopy{margin:22px 0 0;letter-spacing:.22em;font-size:.56rem}
.envelope-button{position:relative;z-index:6;border:0;background:transparent;width:min(79vw,420px);aspect-ratio:1.42;padding:0;perspective:1000px;filter:drop-shadow(0 17px 17px rgba(72,48,26,.22));animation:envelopeBreath 5s ease-in-out infinite}.envelope{display:block;inset:0;position:absolute;transform-style:preserve-3d;transition:transform 1.3s ease}.envelope-back,.envelope-front,.envelope-flap,.envelope-letter{position:absolute;inset:0}.envelope-back{background:linear-gradient(145deg,#e5d5b9,#fff2da 48%,#ead9bd);box-shadow:inset 0 1px 19px #ae927654;border:1px solid #e1cfaf}.envelope-front{z-index:5;background:linear-gradient(155deg,#f8ead3,#ecddc2 55%,#e9d5b4);clip-path:polygon(0 0,50% 61%,100% 0,100% 100%,0 100%);box-shadow:inset 0 -8px 18px #b8a18034}.envelope-front::before{content:'';position:absolute;inset:0;background:linear-gradient(35deg,transparent 49.6%,rgba(174,139,88,.18) 50%,transparent 50.4%)}.envelope-flap{z-index:7;background:linear-gradient(155deg,#f9edd9,#e5d3b5);clip-path:polygon(0 0,100% 0,50% 68%);transform-origin:top;backface-visibility:hidden;transition:transform 1.18s cubic-bezier(.18,.57,.3,1)}.envelope-letter{z-index:3;inset:11% 8% 0;height:86%;width:84%;background:#faf2e2;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:19px 13px;box-shadow:0 5px 14px #705c3b33;transition:transform 1.45s cubic-bezier(.15,.64,.1,1) .15s}.envelope-letter img{width:100%;height:84%;object-fit:cover;filter:saturate(.85);border:6px solid #fbf4e7}.letter-inside{font:500 .57rem var(--sans);letter-spacing:.2em;padding-bottom:12px}.envelope-seal{position:absolute;z-index:8;left:50%;top:59%;transform:translate(-50%,-50%);width:clamp(90px,24%,130px);height:auto;transition:opacity .55s,transform .7s;filter:drop-shadow(0 6px 8px rgba(72,48,26,.17))}.intro-stage.opening .envelope-flap{transform:rotateX(180deg)}.intro-stage.opening .envelope-letter{transform:translateY(-58%) scale(1.05)}.intro-stage.opening .envelope-seal{opacity:0;transform:translate(-50%,-50%) scale(.3)}.intro-stage.opening .envelope-button{animation:none}.intro-butterflies{position:absolute;inset:0;pointer-events:none;z-index:20}.intro-butterflies span{position:absolute;font-size:18px;opacity:0;filter:sepia(1) saturate(2) hue-rotate(355deg)}.intro-butterflies span:nth-child(1){left:27%;top:55%}.intro-butterflies span:nth-child(2){right:21%;top:63%}.intro-butterflies span:nth-child(3){left:46%;top:72%}.intro-stage.opening .intro-butterflies span{animation:goldButterfly 2.4s ease-out forwards}.intro-stage.opening .intro-butterflies span:nth-child(2){animation-delay:.12s}.intro-stage.opening .intro-butterflies span:nth-child(3){animation-delay:.2s}
.travel-sheet{padding:52px 15px 36px;display:flex;flex-direction:column;justify-content:space-between}.travel-head{text-align:center;position:relative;z-index:3}.travel-head .eyebrow{letter-spacing:.18em}.travel-map{position:relative;width:min(100%,470px);height:min(72vh,740px);margin:auto auto 0;overflow:hidden;box-shadow:0 7px 23px rgba(88,63,39,.11);border:4px solid #f7efdc}.travel-map img{width:100%;height:100%;object-fit:cover;object-position:center;opacity:.98}.travel-map::after{position:absolute;content:'';inset:0;background:linear-gradient(to bottom,transparent 83%,#f3e6cd9c);pointer-events:none}.flight-routes{position:absolute;inset:0;width:100%;height:100%;z-index:3}.flight-routes .route{fill:none;stroke-width:3;stroke-dasharray:3 8;stroke-linecap:round;opacity:.75}.route-a{stroke:#3f604f}.route-b{stroke:#ba8254}.heart-line{fill:none;stroke:#9d7853;stroke-width:2;stroke-dasharray:260;stroke-dashoffset:260}.travel-stage.active .heart-line{animation:drawHeart 1.4s ease 4.25s forwards}.flying-plane{filter:drop-shadow(0 2px 3px rgba(33,45,42,.42));opacity:0}.travel-caption{position:relative;text-align:center;z-index:5;margin-top:-30px;background:linear-gradient(180deg,transparent,rgba(246,237,220,.94) 30%);padding-top:23px}.travel-caption .script-type{font-size:2.9rem}.travel-caption .microcopy{margin:9px 0 13px;font-size:.57rem}.progress-track{height:4px;background:#d4c7ae;border-radius:20px;width:130px;margin:auto;overflow:hidden}.progress-track span{height:100%;display:block;width:0;background:var(--olive)}.travel-stage.active .progress-track span{animation:progressFill 6.6s linear forwards}.arrival-sheet{display:flex;align-items:center;flex-direction:column;justify-content:flex-start;text-align:center;padding:11vh 20px 0}.arrival-sheet .eyebrow{position:relative;z-index:3}.arrival-sheet h2{font:400 clamp(4rem,12vw,6rem)/.85 var(--serif);margin:25px auto;position:relative;z-index:3}.arrival-sheet em{font-weight:400}.arrival-art{background:url('assets/city-sunset.webp') center/cover no-repeat;position:absolute;inset:30% 0 0;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 20%);mask-image:linear-gradient(to bottom,transparent,#000 20%)}.arrival-sheet>p{position:absolute;bottom:7%;z-index:4;color:#fff9ef;font:500 .82rem var(--sans);text-shadow:0 1px 5px #334}
.app-shell{position:relative;width:min(100%,1140px);margin:0 auto;background:var(--ivory);box-shadow:0 4px 75px rgba(71,56,27,.14);min-height:100vh}.site-header{height:78px;position:fixed;top:0;left:50%;transform:translateX(-50%);width:min(100%,1140px);padding:8px clamp(16px,4vw,36px);display:flex;align-items:center;justify-content:space-between;z-index:50;pointer-events:none;background:linear-gradient(180deg,#f3eddfef,#f3eddf00)}.site-header>*{pointer-events:auto}.brand-seal{width:62px;height:62px;border-radius:50%;display:block}.brand-seal img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 6px #604a252e)}.header-actions{display:flex;align-items:center;gap:12px}.music-button{display:flex;align-items:center;gap:7px;background:#f9f3e9e8;border:1px solid #cab996;color:var(--deep);padding:6px 14px 6px 6px;border-radius:30px;font:500 .67rem var(--sans);box-shadow:0 3px 9px #51412c12}.music-disc{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--olive);color:#fff0c8;font-size:17px}.menu-button{background:rgba(249,243,232,.78);width:42px;height:42px;border:0;display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;border-radius:50%}.menu-button span{width:20px;height:1px;background:var(--deep)}.site-menu{position:absolute;right:18px;top:70px;min-width:210px;padding:16px 22px;background:#f8f2e6;border:1px solid var(--outline);box-shadow:0 15px 43px #423b2c36;border-radius:5px}.site-menu a{text-decoration:none;display:block;padding:10px;font:500 .77rem var(--sans)}.site-menu a:hover{text-decoration:underline}
.paper-section{padding:105px clamp(26px,7vw,95px) 100px;text-align:center;min-height:680px}.paper-section>*:not(.botanical):not(.coast-illustration):not(.welcome-background):not(.venue-image):not(.final-scene){position:relative;z-index:2}.section-number{margin:0 auto 30px;text-align:center;color:#776c53}.paper-section h2{font:400 clamp(3.7rem,8.2vw,6.1rem)/.84 var(--serif);letter-spacing:-.045em;margin:0;color:var(--deep)}.paper-section h2 em{font-weight:400}.paper-section p{font-size:clamp(1.3rem,3.2vw,1.7rem);line-height:1.22}.ornament{width:92px;height:1px;margin:24px auto 32px;background:linear-gradient(90deg,transparent,#ad986d,transparent)}
.hero-section{padding:110px 25px 30px;min-height:885px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.hero-copy{z-index:6!important}.hero-copy>.eyebrow{display:block;max-width:230px;margin:0 auto 26px;font-size:.64rem}.hero-copy h1{display:flex;flex-direction:column;align-items:center;font:400 clamp(5.7rem,15vw,9.1rem)/.71 var(--serif);letter-spacing:-.069em;text-transform:uppercase;margin:0;color:var(--deep)}.hero-amp{font:italic .78em var(--serif);line-height:.64;letter-spacing:0;text-transform:none}.hero-wed{display:block;margin-top:22px!important;letter-spacing:.31em!important}.hero-portrait{position:relative;width:min(100%,640px);height:490px;margin-top:4px;z-index:2}.hero-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 22%;filter:saturate(.93)}.hero-image-fade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,#f3ecde 0%,transparent 27%,transparent 64%,#f3ecde 98%),linear-gradient(90deg,#f3ecde 0%,transparent 16%,transparent 83%,#f3ecde 100%)}.hero-details{position:relative;margin-top:-8px;z-index:8!important}.hero-details p{font:500 .68rem/1.9 var(--sans);letter-spacing:.20em;margin:0}.hero-details .hero-place{font-size:.57rem;letter-spacing:.18em;margin-bottom:20px}.down-circle{border:1px solid #93957a;width:37px;height:37px;display:grid;place-items:center;border-radius:50%;margin:12px auto;text-decoration:none;font-size:19px;animation:tinyBob 2.5s ease-in-out infinite}
.story-section{min-height:780px}.story-layout{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;max-width:860px;margin:auto}.story-copy p{max-width:395px;margin:0 auto;line-height:1.4}.editorial-photo{margin:0;display:flex;flex-direction:column;align-items:center}.editorial-photo img{width:100%;max-height:540px;object-fit:cover;object-position:center 44%;padding:10px;background:#fcf6e9;box-shadow:0 12px 29px #46391f26;transform:rotate(1deg)}.editorial-photo figcaption{font:italic 1.45rem/1.13 var(--serif);max-width:360px;margin:22px auto 0}.photo-letter-section{position:relative;min-height:700px;background:#325955}.detail-photo{position:absolute;inset:0}.detail-photo img{width:100%;height:100%;object-fit:cover;object-position:center 43%}.photo-letter-section::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(transparent 50%,#111e1850 90%)}.overlaid-letter{position:absolute;z-index:3;bottom:6%;left:50%;transform:translateX(-50%);width:min(84%,480px);background:var(--paper) center/cover,#f2e7d6;padding:28px 23px 31px;border:1px solid #d5c5a9;box-shadow:0 9px 29px #2019133b;display:flex;flex-direction:column;gap:12px;text-align:center}.overlaid-letter .tiny-flower{font-size:21px;color:#7d8f6a}.overlaid-letter span:not(.tiny-flower){font:500 .68rem var(--sans);letter-spacing:.3em}.overlaid-letter strong{font:500 .78rem var(--sans);letter-spacing:.25em}
.passport-section{min-height:780px}.passport-quote{max-width:650px;margin:32px auto;font:italic clamp(1.65rem,4vw,2.35rem)/1.13 var(--serif)!important}.passport-book{position:relative;display:block;width:min(100%,690px);aspect-ratio:2/1;margin:43px auto 20px;background:none;border:0;perspective:1300px;filter:drop-shadow(0 15px 19px #624a2b40);transform:rotate(-1deg);transition:transform .6s}.passport-book:hover{transform:rotate(0deg) translateY(-3px)}.passport-interior{position:absolute;inset:2% 2% 2% 6%;display:block;overflow:hidden;background:#e8dbbf;border:4px double #ba9d70;box-shadow:inset 7px 0 18px #6753384f;border-radius:5px}.passport-interior img{display:block;width:100%;height:100%;object-fit:contain}.passport-cover{position:absolute;inset:2% 7% 2% 6%;background:linear-gradient(123deg,#203f30,#425c42 55%,#203d30);border-radius:5px 14px 14px 5px;box-shadow:inset 18px 0 18px #19372ab0,0 5px 16px #322c2259;border:3px double #bfa777;transform-origin:0 50%;transition:transform 1.35s cubic-bezier(.2,.7,.2,1);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;backface-visibility:hidden;color:#f4eac7}.passport-cover-top{font:500 clamp(.9rem,2.7vw,1.35rem) var(--serif);letter-spacing:.22em}.passport-cover img{height:clamp(70px,17vw,137px);width:clamp(70px,17vw,137px);object-fit:contain}.passport-cover>span:last-child{font:500 .59rem var(--sans);letter-spacing:.15em}.passport-book.open .passport-cover{transform:rotateY(-163deg)}.butterflies{position:absolute;z-index:4;inset:0;pointer-events:none}.butterflies i{position:absolute;font-size:24px;font-style:normal;color:#c69b58;opacity:0}.butterflies i:nth-child(1){left:32%;top:58%}.butterflies i:nth-child(2){right:28%;top:52%}.butterflies i:nth-child(3){left:52%;top:68%}.passport-section.passport-open .butterflies i{animation:goldButterfly 2.5s ease-out forwards}.passport-section.passport-open .butterflies i:nth-child(2){animation-delay:.13s}.passport-section.passport-open .butterflies i:nth-child(3){animation-delay:.27s}.passport-under{margin:25px 0 0}
.venue-section{padding-bottom:90px}.venue-image{position:absolute;z-index:1;top:16%;height:55%;left:0;right:0;overflow:hidden}.venue-image img{width:100%;height:100%;object-fit:cover;object-position:center 45%;filter:saturate(.95)}.venue-image::after{content:'';inset:0;position:absolute;background:linear-gradient(to bottom,#f5eedf 0%,transparent 26%,transparent 70%,#f5eedf 100%)}.venue-card{background:#f9f2e5ef;border:1px solid #c4b392;padding:32px clamp(22px,6vw,50px);margin:420px auto 0;box-shadow:0 15px 41px #68512c27;max-width:590px}.venue-card>.eyebrow{letter-spacing:.2em;font-size:.69rem;display:block;margin-bottom:21px}.event-line{display:flex;text-align:left;align-items:flex-start;gap:16px;margin:9px auto}.event-line>span{font-size:1.8rem;line-height:.9;flex:0 0 28px}.event-line p{font:1.36rem/1.08 var(--serif);margin:0}.event-line b{font-weight:600}.venue-address{text-align:left;display:flex;gap:16px;align-items:flex-start}.venue-address>span{font-size:1.8rem;line-height:1}.venue-address p{font:1.38rem/1.14 var(--serif);margin:0}.venue-address strong{display:block}.venue-address p span{display:block}.primary-pill{display:inline-flex;justify-content:center;align-items:center;gap:16px;background:var(--olive);border:0;border-radius:36px;color:#fff8ed;min-height:46px;text-decoration:none;padding:15px 20px;font:500 .79rem var(--sans);transition:background .2s,transform .2s}.primary-pill:hover{background:#3b533e;transform:translateY(-2px)}.venue-card .primary-pill{width:100%;margin-top:24px}
.welcome-section{min-height:800px;padding-bottom:210px}.welcome-background{position:absolute;bottom:0;left:0;right:0;height:67%;background:linear-gradient(to bottom,#f6edde 0%,transparent 36%),url('assets/city-sunset.webp') center 47%/cover}.welcome-section .section-number{position:relative;z-index:3}.welcome-content{max-width:530px;margin:auto}.welcome-content .toast-mark{font-size:36px}.welcome-content h2{margin:9px auto 20px}.welcome-content>p{max-width:490px;margin:20px auto 28px}.welcome-card{padding:23px;background:rgba(251,246,236,.91);border:1px solid #ceb897;box-shadow:0 12px 25px #4f321c26}.welcome-card>span{display:block;font:500 .68rem var(--sans);letter-spacing:.15em}.welcome-card>b{display:block;font:500 2rem var(--serif);margin:9px auto 4px}.welcome-card p{margin:0;font:1.4rem var(--serif)}.welcome-card em{font:italic 1.35rem var(--serif)}
.countdown-section{min-height:760px;padding-bottom:300px}.countdown-section h2{margin:0 auto 24px}.countdown-subtitle{margin:10px auto 30px;font-size:.66rem!important}.countdown-timer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:min(100%,520px);margin:0 auto;padding:13px 8px;background:#f8f0e1e8;border:1px solid #d7c6a8;box-shadow:0 7px 28px #62513014}.countdown-timer>div{display:flex;align-items:center;flex-direction:column;padding:6px;border-right:1px solid #b9a685}.countdown-timer>div:last-child{border-right:0}.countdown-timer strong{font:400 clamp(2.4rem,8vw,4.9rem)/1 var(--serif);font-variant-numeric:tabular-nums;letter-spacing:-.05em}.countdown-timer span{font:500 .65rem var(--sans);letter-spacing:.12em;margin:8px 0}.countdown-date{max-width:500px;margin:20px auto;padding:10px 15px;background:#f8f0e1ee;font:1.28rem/1.15 var(--serif)!important}.coast-illustration{position:absolute;bottom:0;left:0;right:0;height:49%;background:linear-gradient(to bottom,#f5eddc 0%,#f5eddc77 32%,transparent 65%),url('assets/coast-clean.webp') center 30%/cover no-repeat}
.memories-section{min-height:920px}.memories-intro{margin:23px auto 10px}.polaroid-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:610px;margin:36px auto 0;padding:8px 8px 30px}.polaroid{padding:10px 10px 34px;border:0;background:#fff9ed;box-shadow:0 6px 19px rgba(67,55,31,.27);transition:transform .3s,box-shadow .3s}.polaroid img{width:100%;height:250px;object-fit:cover;display:block}.polaroid-a{transform:rotate(-7deg)}.polaroid-b{transform:rotate(5deg) translateY(32px)}.polaroid-c{transform:rotate(5deg) translateY(-4px)}.polaroid-d{transform:rotate(-5deg) translateY(19px)}.polaroid:hover{transform:rotate(0deg) scale(1.03);box-shadow:0 10px 27px #493a1e52}
.rsvp-section{min-height:950px}.rsvp-section h2{font-size:clamp(3.15rem,6vw,4.4rem)}.rsvp-description{max-width:520px;margin:18px auto 26px}.rsvp-form{max-width:490px;margin:0 auto;text-align:left;background:rgba(250,245,236,.75);padding:20px clamp(15px,4vw,38px) 24px;border:1px solid #caba9f;box-shadow:0 10px 25px #54452b1a;display:flex;flex-direction:column;gap:8px}.rsvp-form label:not(.radio-line),.rsvp-form legend{font:500 1.25rem var(--serif);margin:12px 0 4px}.rsvp-form label span:not(.radio-line span),.rsvp-form legend span{color:#8e6a4e}.rsvp-form input:not([type=radio]),.rsvp-form select,.rsvp-form textarea{border:1px solid #cbb99a;background:#fffdf6;color:var(--deep);padding:12px;font:400 .83rem var(--sans);min-height:45px;border-radius:5px;width:100%}.rsvp-form textarea{resize:vertical;min-height:86px}.rsvp-form fieldset{border:0;margin:10px 0 0;padding:0}.rsvp-form legend{margin-bottom:13px}.radio-line{display:flex;gap:10px;align-items:flex-start;line-height:1.3;font:1.2rem var(--serif);margin:10px 0}.radio-line input{accent-color:#426244;margin-top:4px}.rsvp-form .primary-pill{width:100%;margin-top:17px}.rsvp-form .primary-pill:disabled{opacity:.55;cursor:not-allowed;transform:none}.rsvp-status,.guest-greeting,.form-error,.form-success{padding:15px;font:400 .8rem/1.5 var(--sans);background:#f9f0de;border:1px solid #cfbd9d}.guest-greeting{max-width:490px;margin:5px auto 20px;font:italic 1.4rem var(--serif)}.form-error{background:#f8e8e0;color:#933d2a}.form-success{background:#e4eddf;color:#28583d}.privacy-note{text-align:center;font:.7rem/1.45 var(--sans)!important;color:#7c7568}.companion-group{display:flex;flex-direction:column;gap:7px;margin-top:10px}
.info-section{min-height:580px}.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin:40px auto 0;max-width:840px}.info-grid>div{padding:25px 14px;background:#fbf5eaaa;border:1px solid #d5c5a9}.info-grid>div>span{font-size:32px}.info-grid h3{font:500 1.65rem var(--serif);margin:10px 0}.info-grid p{font:1.24rem/1.12 var(--serif);margin:0}.final-section{min-height:830px;display:flex;flex-direction:column;justify-content:center}.final-message{position:relative;z-index:3}.final-message h2{font-size:clamp(3.3rem,8vw,5.6rem)}.final-message>.tiny-flower{font-size:27px;color:#687953}.final-message p{font:italic 2.2rem var(--serif);margin:0}.final-message h3{font:400 2.95rem var(--serif);margin:15px auto 0}.final-message h3 em{font-style:italic}.final-message img{width:140px;height:140px;object-fit:contain;margin:15px auto 0;filter:drop-shadow(0 6px 9px #58432933)}.final-scene{position:absolute;bottom:0;left:0;right:0;height:37%;background:linear-gradient(to bottom,#f4ecdd 0%,#f4ecddaa 25%,transparent 83%),url('assets/coast-clean.webp') center 50%/cover;opacity:.86}.page-footer{text-align:center;padding:22px;background:#eae0cf;font:500 .67rem var(--sans);letter-spacing:.16em;color:#6c6555}
.lightbox{border:0;background:#f8f0e3;padding:14px;width:min(94vw,760px);max-height:94vh;box-shadow:0 20px 90px #0008;overflow:auto}.lightbox::backdrop{background:rgba(15,25,20,.82)}.lightbox img{width:100%;height:auto;max-height:84vh;object-fit:contain}.lightbox-close{position:absolute;top:5px;right:8px;font-size:30px;background:#fbf4eb;border:0;border-radius:50%;height:43px;width:43px;z-index:2}.music-toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#314a37;color:white;padding:13px 23px;border-radius:25px;font:400 .78rem var(--sans);z-index:200;box-shadow:0 12px 27px #0003}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform 1s cubic-bezier(.15,.8,.3,1)}.reveal.visible{opacity:1;transform:translateY(0)}.hero-copy h1{animation:titleBreath 8s ease-in-out infinite}.down-circle{animation:tinyBob 2.5s ease-in-out infinite}
@keyframes envelopeBreath{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes goldButterfly{0%{opacity:0;transform:translateY(15px) translateX(-4px) rotate(-15deg) scale(.7)}18%{opacity:.85}100%{opacity:0;transform:translateY(-145px) translateX(55px) rotate(24deg) scale(1.1)}}@keyframes drawHeart{to{stroke-dashoffset:0}}@keyframes progressFill{to{width:100%}}@keyframes titleBreath{0%,100%{letter-spacing:-.069em}50%{letter-spacing:-.061em}}@keyframes tinyBob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
@media(max-width:660px){.app-shell{width:100%}.paper-section{padding:100px 30px 90px;min-height:650px}.hero-section{min-height:815px;padding:96px 16px 25px}.hero-copy h1{font-size:clamp(5.55rem,17.7vw,7.8rem)}.hero-portrait{height:460px}.hero-details p{font-size:.60rem}.story-layout{display:block}.story-copy p{max-width:340px;font-size:1.44rem}.editorial-photo{margin:28px auto 0;max-width:340px}.editorial-photo img{max-height:360px;object-position:center 50%}.editorial-photo figcaption{font-size:1.35rem}.story-section{min-height:910px}.photo-letter-section{min-height:720px}.passport-section{min-height:690px}.passport-book{aspect-ratio:1.8/1;margin-top:32px}.passport-quote{margin:22px auto}.venue-section{min-height:1000px}.venue-image{top:15%;height:47%}.venue-card{margin-top:380px;padding:24px 20px}.event-line p,.venue-address p{font-size:1.19rem}.event-line{gap:9px}.venue-card>.eyebrow{font-size:.59rem}.welcome-section{min-height:795px;padding-bottom:210px}.welcome-content>p{font-size:1.34rem}.countdown-section{min-height:790px;padding-bottom:330px}.countdown-timer{padding:12px 4px}.countdown-timer strong{font-size:clamp(2.65rem,11vw,4.5rem)}.countdown-timer span{font-size:.54rem}.countdown-date{font-size:1.1rem!important}.memories-section{min-height:740px}.polaroid-grid{gap:9px}.polaroid{padding:7px 7px 22px}.polaroid img{height:210px}.rsvp-section h2{font-size:3.55rem}.rsvp-form{padding:18px}.info-grid{grid-template-columns:1fr}.info-section{min-height:710px}.info-grid>div{padding:17px}.info-grid h3{font-size:1.65rem}.info-grid p{font-size:1.1rem}.final-section{min-height:770px}.final-scene{height:31%}}
@media(max-width:390px){.intro-sheet{padding-top:63px}.intro-bottom .script-type{font-size:3rem}.intro-heading .eyebrow{font-size:.58rem}.envelope-button{width:85vw}.paper-section{padding-left:24px;padding-right:24px}.hero-copy h1{font-size:5.35rem}.hero-portrait{height:425px}.venue-card{margin-top:345px}.polaroid img{height:170px}.passport-book{aspect-ratio:1.7/1}.countdown-timer strong{font-size:2.4rem}.music-button{font-size:.59rem}.site-header{padding:8px 12px}}
@media(min-width:850px){.hero-section{display:grid;grid-template-columns:46% 54%;grid-template-rows:1fr auto;align-items:center;min-height:760px;padding:110px 80px 60px}.hero-copy{grid-column:1;grid-row:1;text-align:center}.hero-copy h1{font-size:clamp(5rem,7vw,7.7rem)}.hero-copy>.eyebrow{margin-bottom:38px}.hero-portrait{grid-column:2;grid-row:1/3;height:640px;margin:0 -30px 0 0}.hero-details{grid-column:1;grid-row:2;margin-top:-120px}.hero-details p{font-size:.65rem}.story-section{min-height:730px}.venue-section{min-height:980px}.venue-image{top:16%;height:55%}.venue-card{margin-top:410px}.passport-section{min-height:790px}.memories-section{min-height:850px}.polaroid-grid{max-width:750px}.polaroid img{height:290px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition-duration:0s!important}.reveal{opacity:1!important;transform:none!important}.passport-cover{transition:none!important}}
/* Ajustes de precisión: las revelaciones no deben romper el centrado horizontal. */
.overlaid-letter.reveal{transform:translate(-50%,28px)}
.overlaid-letter.reveal.visible{transform:translate(-50%,0)}
.hero-copy h1{line-height:.87}
.hero-amp{line-height:.66;margin:.015em auto}
.paper-section{scroll-margin-top:78px}
@media(max-width:660px){.hero-copy h1{line-height:.85}.hero-amp{margin:.015em auto}.venue-image{top:20%;height:52%}}
/* El mapa conserva su proporción geográfica: nada de recortar etiquetas o deformar continentes. */
.travel-map{width:min(100%,445px);height:auto;aspect-ratio:849/1156;flex:0 0 auto}
.travel-map img{object-fit:contain;object-position:center}
.travel-caption{margin-top:0}
@media(max-width:360px){.hero-copy h1{font-size:4.75rem}.hero-section{padding-left:9px;padding-right:9px}.countdown-timer strong{font-size:2.18rem}}

/* Claudio & Daniels · refinamientos editoriales definitivos */
.story-copy .story-handwritten{
  font-family:'Marck Script','URW Chancery L','Segoe Script',cursive;
  font-weight:400;
  font-size:clamp(1.55rem,2.7vw,2.02rem);
  line-height:1.42;
  letter-spacing:.005em;
  max-width:455px;
  margin:0 auto;
  text-wrap:pretty;
  color:#344c3d;
}
.story-section{min-height:850px}
.story-layout{gap:clamp(25px,3vw,50px)}
.memories-section{padding-bottom:100px}
.gallery-three{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.8vw,23px);max-width:820px;margin:35px auto 40px}
.gallery-three .polaroid{padding:9px 9px 25px;min-width:0;cursor:zoom-in}
.gallery-three .polaroid img{height:clamp(220px,26vw,345px);width:100%;object-fit:cover;object-position:center 30%}
.gallery-three .polaroid-a{transform:rotate(-5deg) translateY(18px)}
.gallery-three .polaroid-b{transform:rotate(3deg) translateY(-6px)}
.gallery-three .polaroid-c{transform:rotate(-3deg) translateY(20px)}
.gallery-three .polaroid:hover,.gallery-three .polaroid:focus-visible{transform:rotate(0) translateY(-4px) scale(1.045)}
.album-actions{max-width:690px;margin:48px auto 0;padding:26px 28px 29px;background:rgba(250,246,237,.75);border:1px solid #d6c5a7;box-shadow:0 14px 31px rgba(75,56,30,.08)}
.album-actions .album-intro{max-width:530px;font:italic clamp(1.35rem,2.5vw,1.6rem)/1.18 var(--serif);margin:0 auto 20px}
.album-buttons{display:flex;justify-content:center;align-items:stretch;flex-wrap:wrap;gap:12px}
.album-buttons a{min-width:205px;min-height:50px;gap:12px;padding:13px 18px;font-size:.76rem}
.album-buttons .outline-pill{color:var(--deep);border:1px solid #a79773;background:#fbf4e8}
.album-small{display:block;font:400 .69rem/1.55 var(--sans);color:#756f60;margin:20px auto 0;max-width:550px}
.lightbox{background:transparent;border:0;padding:0;box-shadow:none;overflow:visible;width:max-content;max-width:94vw;max-height:94dvh}
.lightbox::backdrop{background:rgba(16,24,20,.88);backdrop-filter:blur(5px)}
.lightbox #lightbox-image{display:block;width:auto;height:auto;max-width:94vw;max-height:89dvh;object-fit:contain;border:0;background:transparent;box-shadow:none}
.lightbox-close{top:-17px;right:-16px;background:#f7eee0;box-shadow:0 6px 16px #0006}
.info-section{min-height:560px}
.info-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:775px;gap:22px}
.detail-card{border:1px solid #c7b699;background:#fbf4e9da;min-height:252px;padding:24px 19px;color:var(--deep);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;transition:transform .25s ease,box-shadow .25s ease,background .25s ease;box-shadow:0 6px 22px #62503614}
.detail-card:hover,.detail-card:focus-visible{transform:translateY(-5px);box-shadow:0 12px 27px #62503629;background:#fffaf1}
.detail-card-icon{font:32px var(--serif);color:#647955}
.detail-card h3{font:500 clamp(1.65rem,3.4vw,2.05rem)/1.03 var(--serif);margin:4px 0 0}
.detail-card p{font:1.3rem/1.12 var(--serif);margin:6px 0 13px;max-width:280px}
.detail-view{border-radius:30px;border:1px solid #af9d7a;padding:9px 14px;font:500 .68rem var(--sans);letter-spacing:.09em;text-transform:uppercase;color:#435943;background:#f6ecda}
.details-dialog{padding:0;margin:auto;border:0;background:transparent;max-width:min(94vw,1150px);max-height:94dvh;overflow:visible;box-shadow:none}
.details-dialog::backdrop{background:#121e18dc;backdrop-filter:blur(5px)}
.details-dialog img{display:block;max-width:94vw;max-height:91dvh;width:auto;height:auto;object-fit:contain;background:transparent;box-shadow:0 15px 55px #0003}
.details-close{position:absolute;right:-12px;top:-16px;border:1px solid #d1bfa1;background:#faf2e5;color:#344436;width:46px;height:46px;border-radius:50%;font:32px/1 var(--serif);z-index:5;box-shadow:0 7px 20px #0007}
.page-footer{font-size:.76rem;letter-spacing:.3em}
@media(max-width:660px){
 .story-section{min-height:0;padding-bottom:90px}
 .story-copy .story-handwritten{font-size:clamp(1.65rem,6.5vw,2rem);line-height:1.37;max-width:400px}
 .editorial-photo{margin-top:36px}
 .memories-section{min-height:0;padding-bottom:95px}
 .gallery-three{grid-template-columns:repeat(2,minmax(0,1fr));max-width:440px;gap:13px;margin:28px auto 28px}
 .gallery-three .polaroid img{height:clamp(195px,52vw,255px)}
 .gallery-three .polaroid-c{grid-column:1/-1;width:60%;margin:3px auto 0;transform:rotate(-3deg)}
 .gallery-three .polaroid-c img{height:clamp(190px,57vw,275px)}
 .album-actions{margin:30px auto 0;padding:24px 15px}
 .album-buttons{flex-direction:column;align-items:stretch;max-width:320px;margin:auto}
 .album-buttons a{width:100%;min-width:0}
 .info-section{min-height:0;padding-bottom:75px}
 .info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:30px}
 .detail-card{min-height:245px;padding:20px 10px}
 .detail-card h3{font-size:1.48rem}
 .detail-card p{font-size:1.13rem}
 .detail-view{font-size:.58rem;letter-spacing:.03em;padding:9px 8px}
}
@media(max-width:390px){
 .gallery-three .polaroid img{height:184px}
 .gallery-three .polaroid-c img{height:225px}
 .story-copy .story-handwritten{font-size:1.66rem}
 .detail-card{min-height:252px}
 .detail-card h3{font-size:1.35rem}
}
/* Tipografía manuscrita legible sin conexión cuando existe un estilo local. */
.story-copy .story-handwritten{font-family:'Marck Script','Apple Chancery','Brush Script MT','Z003','Segoe Script',cursive}
/* El encabezado nunca deja ver texto por detrás mientras se desplaza la página. */
.site-header{background:rgba(247,241,230,.94);border-bottom:1px solid rgba(177,155,114,.17);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}

/* Escala de nombres optimizada para la grafía más larga: DANIELS. */
@media (min-width:850px){.hero-copy h1{font-size:clamp(4.9rem,6.6vw,7rem)}}
@media (max-width:660px){.hero-copy h1{font-size:clamp(4.7rem,16vw,6.7rem)}}
@media (max-width:350px){.hero-copy h1{font-size:4.45rem}}
