@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--black:#080808;--gold:#d6b56b;--muted:#9c9992;--line:#d6b56b30;--serif:'Cormorant Garamond',Georgia,serif;--sans:Manrope,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{margin:0;background:var(--black);color:#f0ede7;font-family:var(--sans);overflow-x:hidden}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}p,h1,h2,h3{margin-top:0}p{color:var(--muted);font-size:14px;line-height:1.9}.ambient{pointer-events:none;position:fixed;inset:0;background:radial-gradient(ellipse at 85% 15%,#b8974c0c,transparent 55%);z-index:-1}.progress{height:2px;position:fixed;left:0;top:0;background:var(--gold);transform-origin:left;width:100%;transform:scaleX(0);z-index:20}header{position:absolute;top:0;left:0;width:100%;padding:28px 6%;display:flex;justify-content:space-between;align-items:center;z-index:3}.monogram{font-family:var(--serif);font-size:37px;color:var(--gold);line-height:1}.monogram span{font:9px var(--sans);vertical-align:top;margin:4px}.nav-link{font-size:9px;letter-spacing:1.4px;border-bottom:1px solid var(--line);padding-bottom:10px}.nav-link span{color:var(--gold);margin-left:20px}.hero{min-height:920px;height:100svh;max-height:1150px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;isolation:isolate;padding:110px 20px 60px;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#a8862713,transparent 63%)}.hero-lines{position:absolute;inset:110px 6% 55px;border:1px solid var(--line);z-index:-1}.hero-lines:before,.hero-lines:after{content:'';position:absolute;top:50%;left:50%;width:640px;height:640px;border:1px solid #b8974c19;border-radius:50%;transform:translate(-50%,-50%)}.hero-lines:after{width:720px;height:720px;border-style:dashed;animation:orbit 100s linear infinite}.eyebrow,.section-number{font-size:9px;letter-spacing:3px;font-weight:500;color:var(--gold)}.hero>.eyebrow{margin-bottom:20px}.hero-title{position:relative;padding:95px 0 40px;width:min(100%,900px)}.giant-number{position:absolute;font-size:360px;font-family:var(--serif);line-height:.8;font-weight:500;top:0;left:50%;transform:translateX(-50%);z-index:-1;color:transparent;-webkit-text-stroke:1px #d6b56b60;letter-spacing:-18px;opacity:.7}h1{font-family:var(--serif);font-size:clamp(86px,11.8vw,170px);font-weight:400;letter-spacing:-5px;line-height:1;margin:20px 0;color:#e6cc91;text-shadow:0 5px 25px #080808;background:linear-gradient(115deg,#977137 0%,#f4e1b0 40%,#b99650 65%,#ecd39c 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-title>p{font-size:10px;letter-spacing:7px;color:#d5c6a5;margin:27px 0 0}.hero-date{display:flex;flex-direction:column;gap:16px;margin:30px 0 35px}.hero-date>span{font-size:8px;letter-spacing:3px;color:var(--muted)}.hero-date strong{font-family:var(--serif);font-weight:400;font-size:34px;letter-spacing:4px}.hero-date i{font-style:normal;color:#8c7348;padding:0 10px}.gold-button{border:1px solid var(--gold);background:linear-gradient(115deg,#dfc384,#b7914d);color:#17130e;display:inline-flex;padding:18px 25px;gap:35px;justify-content:center;align-items:center;font-size:10px;letter-spacing:1.6px;font-weight:700;transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden}.gold-button:before{content:'';position:absolute;inset:-60% auto -60% -70%;width:30%;background:#ffffff40;transform:rotate(25deg);animation:shine 7s ease-in-out infinite}.gold-button:hover{transform:translateY(-3px);box-shadow:0 7px 35px #d6b56b25}.gold-button>span{font-size:17px;line-height:1}.scroll-hint{position:absolute;bottom:22px;font-size:7px;letter-spacing:2px;color:#8c8374;display:flex;gap:15px}.statement{text-align:center;padding:110px 20px 60px}.statement h2,h2{font-family:var(--serif);font-weight:400;font-size:clamp(40px,5.2vw,70px);letter-spacing:-1px;line-height:1.08;margin-bottom:25px}em{font-weight:400;color:var(--gold);font-style:italic}.statement p:not(.eyebrow){margin-top:25px}.star{display:block;color:var(--gold);font-size:26px;margin:40px auto 0}.countdown-section{padding:60px 20px 100px;text-align:center}.countdown{display:flex;align-items:center;justify-content:center;gap:28px;margin-top:45px}.countdown>div{min-width:110px}.countdown strong{display:block;font-family:var(--serif);font-size:90px;font-weight:400;line-height:1.1;font-variant-numeric:tabular-nums;color:#d9bd7e;text-shadow:0 0 28px #d6b56b15}.countdown span{font-size:8px;letter-spacing:3px;color:#9b8d73}.countdown>i{font-family:var(--serif);font-style:normal;font-size:40px;color:#655334;margin-top:-20px}.count-note{font-size:8px;letter-spacing:3px;margin-top:35px;color:#6f6657}.event-section{max-width:1100px;margin:auto;padding:65px 35px 120px;display:grid;grid-template-columns:1fr 1.12fr;gap:100px;align-items:center}.section-number{display:block;margin-bottom:30px;font-size:8px;letter-spacing:2px}.event-title h2{font-size:73px}.event-ticket{padding:35px;border:1px solid #c6a66360;background:linear-gradient(140deg,#c7a1560c,#ffffff02);position:relative}.event-ticket:before{content:'';inset:9px;position:absolute;border:1px solid #c7a15615;pointer-events:none}.ticket-top{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:25px;color:var(--gold);font-size:7px;letter-spacing:1px}.ticket-top>span:last-child{font-size:5px;max-width:130px;text-align:right;line-height:1.7}.event-ticket h3{font-family:var(--serif);font-size:48px;font-weight:400;margin:35px 0 15px}.address{font-size:12px}.ticket-details{display:flex;justify-content:space-between;margin:28px 0 30px;gap:15px}.ticket-details span{font-size:7px;letter-spacing:2px;color:var(--gold);display:block;margin-bottom:10px}.ticket-details strong{font-size:12px;font-weight:500}.event-ticket .gold-button{width:100%}.ticket-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:30px;font-size:6px;letter-spacing:2px;color:#8b7e67}.barcode{width:90px;height:24px;background:repeating-linear-gradient(90deg,#d6b56b90 0 1px,transparent 1px 3px,#d6b56b90 3px 5px,transparent 5px 8px)}.marquee{overflow:hidden;border-block:1px solid var(--line);padding:18px 0;color:#b49860;font-size:11px;letter-spacing:4px;background:#c7a15605}.marquee>div{width:max-content;animation:marquee 35s linear infinite}.details{max-width:1100px;margin:auto;padding:100px 35px;display:grid;grid-template-columns:1fr 1fr;gap:30px}.detail-card{border:1px solid var(--line);padding:40px;background:linear-gradient(145deg,#d6b56b08,transparent)}.line-icon{width:47px;height:47px;fill:none;stroke:var(--gold);stroke-width:1;stroke-linejoin:round;stroke-linecap:round;margin:0 0 30px}.detail-card h2{font-size:43px}.detail-card p{font-size:12px}.detail-card .dress{font-size:13px;letter-spacing:3px;color:var(--gold);margin:30px 0 16px}.alias-button{display:flex;width:100%;align-items:center;justify-content:space-between;background:#ffffff03;border:1px solid var(--line);color:var(--gold);text-align:left;padding:16px 18px;margin-top:22px}.alias-button small{display:block;font-size:7px;letter-spacing:2px;margin-bottom:7px;color:#958567}.alias-button strong{font-size:17px;font-weight:500;letter-spacing:.5px}.alias-button>span:last-child{font-size:8px;letter-spacing:1px}.copy-status{font-size:10px!important;min-height:19px;margin:8px 0 0!important}.music-section{padding:50px 35px 100px;max-width:1100px;margin:auto;display:grid;grid-template-columns:1fr 1.3fr;gap:80px;align-items:center}.vinyl{width:300px;height:300px;border-radius:50%;display:grid;place-items:center;background:repeating-radial-gradient(circle,#121212 0 2px,#25231e 3px,#101010 4px 6px);box-shadow:0 0 60px #d6b56b09;border:1px solid #b5985c45;animation:spin 35s linear infinite}.vinyl>div{width:110px;height:110px;background:linear-gradient(130deg,#e1c27e,#987439);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#17120b}.vinyl span{font-family:var(--serif);font-size:48px;line-height:1}.vinyl small{font-size:5px;letter-spacing:1px;margin-top:6px}.music-copy h2{font-size:47px}.music-copy p{font-size:12px}.text-link{display:block;font-size:8px;letter-spacing:1px;color:var(--gold);margin-top:23px}.rsvp{padding:90px 20px 100px;text-align:center;border-block:1px solid var(--line);background:radial-gradient(ellipse at 50% 100%,#b58c3414,transparent 65%)}.rsvp h2{font-size:clamp(45px,5.2vw,75px)}.rsvp>p:not(.eyebrow){font-size:12px}.rsvp .gold-button{margin-top:15px}.rsvp-date{font-size:8px;letter-spacing:2px;color:#a48e62;margin-top:40px}.rsvp-date span{padding:0 12px}.closing{text-align:center;padding:70px 20px}.closing>.star{margin:0 0 30px}.closing p{font-family:var(--serif);font-size:25px;color:#bdb3a0;font-style:italic}.closing>strong{display:block;font-family:var(--serif);font-size:65px;color:var(--gold);font-weight:400;margin:30px 0 10px}.closing>.eyebrow{font-size:7px}footer{border-top:1px solid #ffffff09;padding:25px 6%;display:flex;justify-content:space-between;font-size:7px;letter-spacing:2px;color:#74664f}.intro{position:fixed;inset:0;background:#080808;z-index:50;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:25px;animation:intro-out .9s 1.4s forwards;pointer-events:none}.intro>span,.intro>small{font-size:8px;letter-spacing:4px;color:#a48e62}.intro>strong{font-family:var(--serif);font-size:100px;font-weight:400;color:var(--gold);position:relative;animation:appear 1.2s both}.intro>strong span{font-family:var(--sans);font-size:13px;position:absolute;top:12px;right:-20px}.reveal{opacity:0;transform:translateY(35px);transition:opacity .9s,transform .9s}.reveal.visible{opacity:1;transform:none}.entrance{animation:appear 1.3s 1.7s both}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#d6b56b;color:#16110a;padding:13px 22px;font-size:12px;opacity:0;transition:.3s;pointer-events:none;z-index:30}.toast.show{opacity:1;transform:translate(-50%,0)}a:focus-visible,button:focus-visible{outline:2px solid #e7cd91;outline-offset:5px}@keyframes intro-out{to{opacity:0;visibility:hidden}}@keyframes appear{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes orbit{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes marquee{to{transform:translateX(-50%)}}@keyframes shine{0%,65%{left:-70%}100%{left:150%}}@media(max-width:760px){header{padding:24px 7%}.nav-link{font-size:7px;letter-spacing:1px}.nav-link span{margin-left:12px}.hero{min-height:780px;max-height:950px}.hero-lines{inset:95px 5% 50px}.hero-lines:before{width:400px;height:400px}.hero-lines:after{width:460px;height:460px}.hero>.eyebrow{font-size:7px;letter-spacing:2px}.hero-title{padding:85px 0 35px}.giant-number{font-size:290px;letter-spacing:-14px}h1{font-size:94px;letter-spacing:-4px}.hero-title>p{font-size:8px;letter-spacing:5px}.hero-date{gap:14px;margin-top:18px}.hero-date strong{font-size:28px}.hero-date>span{font-size:7px}.hero .gold-button{font-size:8px;padding:17px 23px}.statement{padding-top:75px}.statement p{font-size:12px}.countdown-section{padding:35px 16px 75px}.countdown{gap:9px;margin-top:35px}.countdown>div{min-width:58px}.countdown strong{font-size:54px}.countdown span{font-size:6px;letter-spacing:1.4px}.countdown>i{font-size:25px}.event-section{padding:35px 7% 70px;grid-template-columns:1fr;gap:35px}.event-title h2{font-size:58px}.event-title>p{font-size:12px}.event-ticket{padding:28px}.event-ticket h3{font-size:43px}.details{grid-template-columns:1fr;padding:65px 7%;gap:20px}.detail-card{padding:30px}.detail-card h2{font-size:40px}.music-section{grid-template-columns:1fr;padding:15px 7% 75px;gap:40px}.vinyl{width:230px;height:230px;margin:auto}.vinyl>div{width:85px;height:85px}.music-copy h2{font-size:43px}.rsvp{padding:70px 7%}.gold-button{font-size:9px}.closing{padding:60px 7%}.closing p{font-size:23px}}@media(max-width:370px){h1{font-size:80px}.countdown{gap:6px}.countdown strong{font-size:47px}.countdown>div{min-width:52px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.intro{display:none}.reveal{opacity:1;transform:none}}

.hero-portrait{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;z-index:-3;opacity:.4}.hero:after{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(#08080855,#08080835 30%,#080808e6 85%,#080808)}.photo-gallery{padding:70px 7%;max-width:950px;margin:auto;text-align:center}.gallery-stage{position:relative;height:580px;background:radial-gradient(ellipse,#d6b56b09,transparent);border:1px solid var(--line);margin:40px 0 20px;overflow:hidden}.gallery-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:18px;opacity:0;transition:opacity 1s}.gallery-photo.active{opacity:1}.gallery-controls{display:flex;justify-content:center;gap:30px;align-items:center;color:var(--gold);font-size:10px;letter-spacing:2px}.gallery-controls button{background:transparent;color:var(--gold);border:1px solid var(--line);width:40px;height:40px;border-radius:50%;font-size:18px}.music-toggle{position:fixed;bottom:20px;right:20px;z-index:25;border:1px solid #d6b56b80;background:#17130ee8;color:var(--gold);border-radius:30px;padding:13px 19px;font-size:18px;backdrop-filter:blur(12px)}.music-toggle span{font-size:8px;letter-spacing:1px;margin-left:7px}@media(max-width:760px){.gallery-stage{height:430px}.music-toggle{bottom:14px;right:14px;padding:11px 15px}.hero-portrait{object-position:center 25%}.gallery-photo{padding:10px}}

body.intro-open{overflow:hidden}.photo-intro{position:fixed;inset:0;z-index:60;background:#070707;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:25px 20px;overflow:hidden;transition:opacity 1.2s,visibility 1.2s;isolation:isolate}.photo-intro.departing{opacity:0;visibility:hidden;pointer-events:none}.intro-spotlight{position:absolute;inset:-30%;z-index:-1;background:conic-gradient(from 30deg at 50% 50%,transparent,#cfab5414,transparent 30%,#cfab5410,transparent 65%);animation:spin 30s linear infinite}.intro-kicker{font-size:8px;letter-spacing:3px;color:#c7ad78;margin:0 0 20px;animation:appear 1.3s both}.intro-photo-frame{position:relative;width:280px;height:min(49svh,430px);min-height:260px;padding:7px;border:1px solid #d6b56b66;box-shadow:0 0 80px #d6b56b12;animation:intro-photo-in 1.8s cubic-bezier(.2,.7,.2,1) both;transform-style:preserve-3d}.intro-photo-frame:after{content:'';position:absolute;inset:-10px;border:1px solid #d6b56b25;pointer-events:none}.intro-photo-frame>img{width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:saturate(.75)}.intro-photo-shade{position:absolute;inset:7px;background:linear-gradient(transparent 30%,#000c)}.intro-age{position:absolute;top:20px;left:25px;color:#f0d390;font-family:var(--serif);font-size:67px;line-height:1}.intro-photo-title{position:absolute;bottom:25px;left:0;right:0;text-align:center}.intro-photo-title small{font-size:7px;letter-spacing:4px;color:#dfc996}.intro-photo-title strong{display:block;font-family:var(--serif);font-weight:400;font-size:56px;color:#ead4a0;line-height:1.2}.intro-invitation{font-family:var(--serif);font-style:italic;font-size:22px;color:#bfb39a;margin:25px 0 18px;animation:appear 1.4s .3s both}.photo-intro .gold-button{animation:appear 1.4s .6s both;font-size:8px}.intro-bottom{font-size:6px;letter-spacing:3px;color:#8f7c58;margin-top:22px}#goldParticles{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;opacity:.7}.hero{min-height:900px}.hero-portrait{opacity:.62;object-position:center 25%;transform:scale(1.025)}.hero:after{background:linear-gradient(#08080877,#08080820 28%,#080808b0 67%,#080808)}.hero-title{padding-top:125px}.hero-title h1{text-shadow:none;filter:drop-shadow(0 3px 15px #000);font-style:italic}.hero .giant-number{font-size:410px;opacity:.55;top:0;-webkit-text-stroke:1px #e1bf78a0}.gallery-scene{position:relative;padding:30px 30px 20px;perspective:1200px}.gallery-orbit{position:absolute;inset:0;border:1px solid #d6b56b22;border-radius:50%;transform:rotate(-15deg)}.gallery-stage{height:610px;max-width:460px;margin:0 auto;background:#f3eee4;border:0;padding:12px 12px 64px;box-shadow:0 20px 70px #0009,0 0 30px #d6b56b08;transform:rotate(-2deg);transition:transform 1s;overflow:hidden}.gallery-stage:hover{transform:rotate(0)}.gallery-photo{inset:12px 12px 64px;width:calc(100% - 24px);height:calc(100% - 76px);padding:0!important;object-fit:contain;background:#171613;transition:opacity 1.2s,transform 1.8s;transform:scale(.97);filter:saturate(.9)}.gallery-photo.active{transform:scale(1)}.polaroid-caption{position:absolute;left:23px;right:23px;bottom:21px;display:flex;align-items:center;justify-content:space-between;color:#9d7836}.polaroid-caption>span:first-child{font-size:9px;font-weight:700;letter-spacing:3px}.polaroid-caption small{font-size:6px;letter-spacing:2px}.polaroid-caption>span:last-child{font-size:20px}.gallery-controls{margin-top:30px}.gallery-controls button{background:linear-gradient(130deg,#d6b56b19,#d6b56b05);transition:background .3s,transform .3s}.gallery-controls button:hover{background:#d6b56b30;transform:scale(1.08)}.detail-card,.event-ticket{backdrop-filter:blur(12px);position:relative;overflow:hidden}.detail-card:after{content:'';position:absolute;width:140px;height:140px;right:-90px;top:-90px;background:#d6b56b15;filter:blur(35px);border-radius:50%;pointer-events:none}.countdown-section{position:relative;background:radial-gradient(ellipse,#d6b56b09,transparent 65%)}.countdown-section.visible .countdown{animation:count-arrive 1.5s cubic-bezier(.2,.8,.2,1) both}.countdown strong{background:linear-gradient(115deg,#967039,#f2dca6,#b68e45,#edd39b);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 15px #d6b56b18)}.reveal{transition:opacity 1.2s,transform 1.2s;transform:translateY(40px) scale(.97)}.reveal.visible{transform:translateY(0) scale(1)}@keyframes intro-photo-in{from{opacity:0;transform:translateY(45px) rotateY(-12deg) scale(.85);filter:blur(10px)}to{opacity:1;transform:none;filter:blur(0)}}@keyframes count-arrive{0%{opacity:0;transform:scale(1.18);filter:blur(8px)}60%{opacity:1;transform:scale(.97);filter:blur(0)}100%{transform:scale(1)}}@media(max-width:760px){.hero{min-height:810px}.hero-title{padding-top:105px}.hero .giant-number{font-size:320px}.hero-portrait{object-position:center 30%}.gallery-scene{padding:22px 9px 10px}.gallery-stage{height:470px;max-width:340px;padding:9px 9px 56px}.gallery-photo{inset:9px 9px 56px;width:calc(100% - 18px);height:calc(100% - 65px)}.polaroid-caption{bottom:16px;left:20px;right:20px}.intro-photo-frame{width:250px}.intro-kicker{font-size:6px;letter-spacing:2px}}@media(prefers-reduced-motion:reduce){.photo-intro{transition:none}.intro-photo-frame,.intro-invitation,.intro-kicker,.photo-intro .gold-button{animation:none}.reveal{transform:none}.gallery-photo,.gallery-stage{transform:none}#goldParticles{display:none}}

/* Composición basada en la referencia: disco, títulos caligráficos y marcos blancos. */
@import url('https://fonts.googleapis.com/css2?family=Great+Vibes&display=swap');
body{background:#020504 url('assets/disco.svg') center top/1050px auto repeat-y}header{display:none}.ambient{background:linear-gradient(90deg,#0009,transparent 35%,transparent 65%,#0009)}.hero{height:auto;min-height:850px;padding:310px 20px 55px;background:none}.hero:before{content:'';position:absolute;top:0;left:0;right:0;height:310px;background:radial-gradient(ellipse at 50% -30%,#f2e8d250,transparent 60%),radial-gradient(ellipse at 60% 10%,#c8b89935,transparent 30%),linear-gradient(#0000,#020504);z-index:-1}.hero:after{display:none}.hero-portrait{display:none}.hero-lines{inset:35px auto auto 50%;width:240px;height:240px;border-radius:50%;transform:translateX(-50%);background:url('assets/disco.svg') 60% 40%/450px;box-shadow:0 0 65px #f1e4c636,inset -30px -20px 50px #000b;border:1px solid #aaa58e55}.hero-lines:before{width:330px;height:2px;border:0;background:linear-gradient(90deg,transparent,#e6d8b8,transparent);box-shadow:0 0 20px #e6d8b8;top:45%;transform:translate(-50%,-50%) rotate(-20deg)}.hero-lines:after{width:2px;height:310px;border:0;background:linear-gradient(transparent,#e6d8b8,transparent);top:45%;animation:none;transform:translate(-50%,-50%) rotate(-20deg)}.hero>.eyebrow{display:none}.hero-title{padding:0;width:100%}.hero .giant-number{position:static;display:block;transform:none;font:600 76px/1.1 var(--serif);letter-spacing:-2px;color:#d8bf71;-webkit-text-stroke:0;opacity:1;background:linear-gradient(#fbecb7,#92702d);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.hero-title h1{font:600 80px/1 var(--serif);letter-spacing:-2px;font-style:normal;margin:0 0 20px}.hero-title>p{font-size:8px;letter-spacing:4px}.hero-date{margin-top:45px}.hero-date strong{font-size:26px}.hero>.gold-button{display:none}.hero-date>span:first-child{display:none}.hero-date>span:last-child{display:none}.scroll-hint{bottom:20px}.statement{padding:20px 20px 50px}.statement h2{font-family:'Great Vibes',cursive;font-size:49px;line-height:1.3}.statement h2 em{color:#f1eee5}.statement .eyebrow,.statement .star{display:none}.statement p{font-size:13px}.countdown-section{padding:25px 15px 65px;background:none}.countdown-section>.eyebrow{display:none}h2,.event-title h2,.detail-card h2,.music-copy h2,.rsvp h2{font-family:'Great Vibes',cursive;font-size:56px;font-weight:400;letter-spacing:0;line-height:1.3;color:#f4f1e9}h2 em{color:#f4f1e9;font-style:normal}.countdown{margin-top:15px;gap:17px}.countdown strong{font-size:66px}.countdown>div{min-width:75px}.countdown-section .count-note{color:#d3c39d}.event-section{display:block;padding:0 20px 50px;max-width:650px}.event-title{display:none}.event-ticket{border:3px solid #eee9db;background:#02050475;text-align:center;padding:35px 30px}.event-ticket:before{display:none}.ticket-top{display:none}.event-ticket h3{font-family:'Great Vibes',cursive;font-size:58px;margin:0 0 25px}.event-ticket h3:before{content:'Festejo';display:block}.event-ticket h3{font-size:0}.event-ticket h3:before{font-size:58px}.address{font-family:var(--serif);font-size:20px;color:#f1eee4}.ticket-details{justify-content:center;gap:45px}.ticket-details strong{font-size:14px}.ticket-bottom{display:none}.gold-button{border-radius:30px;letter-spacing:1px;padding:15px 28px}.marquee{display:none}.photo-gallery{max-width:650px;padding:30px 25px 70px}.photo-gallery h2{font-size:48px}.gallery-stage{max-width:340px;height:480px}.gallery-scene{padding:20px 12px}.details{display:flex;flex-direction:column;max-width:650px;padding:0 20px 35px;gap:40px}.detail-card{text-align:center;border:3px solid #eee9db;background:#02050480;padding:30px}.detail-card .section-number{display:none}.line-icon{width:42px;height:42px;stroke:#f0e8d3;margin:0 0 13px}.detail-card h2{font-size:56px;margin-bottom:20px}.detail-card .dress{color:#f1eee4;font-family:var(--serif);font-size:25px;letter-spacing:1px}.detail-card p{color:#c6c3b9}.alias-button{max-width:320px;margin:25px auto 0;border-radius:25px;background:linear-gradient(120deg,#e2ca8f,#af8d41);color:#17130e;border:0}.alias-button small{color:#463a22}.music-section{display:block;max-width:650px;padding:10px 20px 50px}.music-copy{border:3px solid #eee9db;background:#02050480;padding:35px 30px;text-align:center}.music-copy .section-number,.vinyl{display:none}.music-copy p{font-family:var(--serif);font-size:20px;color:#e5e1d4}.text-link{font-size:9px}.rsvp{border:0;background:none;max-width:650px;margin:auto;padding:10px 20px 50px}.rsvp>.eyebrow{display:none}.rsvp>p:not(.eyebrow){border:3px solid #eee9db;padding:30px 25px 85px;margin-bottom:-70px;background:#02050480;font-family:var(--serif);font-size:19px;color:#e5e1d4}.rsvp h2{font-size:50px}.rsvp-date{margin-top:35px}.closing{padding:35px 20px 60px}.closing .star{display:none}.closing p{font-family:'Great Vibes',cursive;font-size:34px;max-width:470px;margin:auto;color:#eee7d8}.closing>strong{font-family:'Great Vibes',cursive}.section-number{display:none}.photo-intro{background:#020504 url('assets/disco.svg') center/cover}.intro-photo-frame{box-shadow:0 0 75px #d6b56b20}.intro-kicker{color:#eee1bf}@media(max-width:760px){.hero{min-height:750px;padding-top:280px}.hero-lines{width:210px;height:210px}.hero .giant-number{font-size:65px}.hero-title h1{font-size:72px}.hero-date{margin-top:35px}.statement h2{font-size:41px}.countdown strong{font-size:49px}.countdown>div{min-width:51px}.countdown{gap:8px}.countdown span{font-size:6px}.event-ticket{padding:30px 18px}.ticket-details{gap:24px}.address{font-size:18px}.photo-gallery h2{font-size:40px}.detail-card,.music-copy{padding:30px 20px}.detail-card h2{font-size:49px}.rsvp h2{font-size:43px}.gallery-stage{height:450px}.music-copy p{font-size:18px}.rsvp>p:not(.eyebrow){font-size:17px}.intro-photo-frame{border-color:#e0d0a8}.photo-gallery>.eyebrow{font-size:7px}}

.event-ticket h3{font-size:58px}.event-ticket h3:before{display:none}.venue-name{color:#f1eee4;font-family:var(--serif);font-size:23px;margin-bottom:12px}
body.photo-disco{background:#030303}.disco-photo-background{position:fixed;inset:-4%;z-index:-2;background:url('assets/disco-photo.webp') center/cover no-repeat;opacity:.6;animation:disco-drift 24s ease-in-out infinite alternate;pointer-events:none;will-change:transform}.photo-disco .ambient{z-index:-1;background:linear-gradient(90deg,#0009,transparent 40%,transparent 60%,#0009)}.photo-disco .hero:before,.photo-disco .hero-lines{display:none}.photo-disco .hero{background:linear-gradient(#0000,#0003);padding-top:320px}.photo-disco .photo-intro{background:#020202 url('assets/disco-photo.webp') center/cover}.photo-disco .event-ticket,.photo-disco .detail-card,.photo-disco .music-copy{background:#0009;backdrop-filter:blur(3px)}@keyframes disco-drift{from{transform:scale(1) translateY(0)}to{transform:scale(1.08) translateY(-1.5%)}}@media(max-width:760px){.photo-disco .hero{padding-top:285px}.disco-photo-background{background-position:center top;opacity:.65}.music-copy .gold-button{font-size:8px;gap:12px;padding:15px 18px}}@media(prefers-reduced-motion:reduce){.disco-photo-background{animation:none}}
/* Disco en movimiento y tarjetas contemporáneas. */
.disco-photo-background{inset:-10%;opacity:.72;animation:disco-motion 15s ease-in-out infinite alternate;transform-origin:50% 20%}.photo-disco .ambient:before{content:'';position:absolute;inset:-40%;background:conic-gradient(from 0deg,transparent 0 17%,#f4d48a15 19%,transparent 22% 47%,#fff0c914 49%,transparent 53% 78%,#d6b56b10 81%,transparent 85%);animation:light-sweep 22s linear infinite;mix-blend-mode:screen;pointer-events:none}.photo-disco .ambient:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 25% 15%,#e8c36d22,transparent 28%),radial-gradient(ellipse at 80% 60%,#fff1c910,transparent 25%);animation:disco-light 7s ease-in-out infinite alternate;pointer-events:none}.photo-disco .event-ticket,.photo-disco .detail-card,.photo-disco .music-copy{border:1px solid #e2c88d60;border-radius:24px;background:linear-gradient(135deg,#30271b99,#080808d9 60%,#211c1499);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 18px 50px #0006,inset 0 1px 0 #fff1;transition:transform .6s,border-color .6s,box-shadow .6s}.photo-disco .event-ticket:hover,.photo-disco .detail-card:hover,.photo-disco .music-copy:hover{transform:translateY(-7px);border-color:#e7cb8ca0;box-shadow:0 25px 65px #0008,0 0 24px #d6b56b10}.detail-card:before,.music-copy:before{content:'';position:absolute;top:0;left:18%;right:18%;height:1px;background:linear-gradient(90deg,transparent,#fae6b8,transparent)}.music-copy{position:relative;overflow:hidden}.photo-disco .detail-card h2,.photo-disco .music-copy h2{color:#f2dbad}.line-icon{padding:12px;width:68px;height:68px;border-radius:18px;background:#d6b56b0c;border:1px solid #d6b56b30;stroke:#e5c98b}.photo-disco .detail-card .dress{display:inline-block;border:1px solid #d6b56b50;border-radius:30px;padding:12px 25px;background:#d6b56b0d;font-family:var(--sans);font-size:14px;letter-spacing:4px;color:#f0d59b;margin-top:4px}.alias-button{border-radius:14px;background:linear-gradient(120deg,#ecd49c,#bb9551);padding:18px 20px;box-shadow:0 8px 25px #0003}.gold-button{box-shadow:0 7px 25px #0003}.rsvp>p:not(.eyebrow){border:1px solid #e2c88d60;border-radius:24px;background:linear-gradient(135deg,#30271b99,#080808d9);backdrop-filter:blur(16px)}.event-ticket h3{color:#f2dbad}.gallery-stage{box-shadow:0 25px 70px #0009,0 0 35px #d6b56b15}@keyframes disco-motion{0%{transform:scale(1) translate(-1%,0) rotate(-1deg)}50%{transform:scale(1.13) translate(1%,-2%) rotate(.5deg)}100%{transform:scale(1.05) translate(-2%,-4%) rotate(1.5deg)}}@keyframes light-sweep{to{transform:rotate(360deg)}}@keyframes disco-light{from{opacity:.25;transform:translateX(-5%)}to{opacity:1;transform:translateX(5%)}}@media(max-width:760px){.photo-disco .event-ticket,.photo-disco .detail-card,.photo-disco .music-copy{border-radius:20px}.disco-photo-background{animation-duration:12s}.photo-disco .detail-card .dress{font-size:12px;padding:12px 22px}.line-icon{width:60px;height:60px;padding:10px}}@media(prefers-reduced-motion:reduce){.disco-photo-background,.photo-disco .ambient:before,.photo-disco .ambient:after{animation:none!important}.photo-disco .detail-card:hover,.photo-disco .event-ticket:hover,.photo-disco .music-copy:hover{transform:none}}

#discoSphere{position:absolute;top:20px;left:50%;transform:translateX(-50%);width:300px;height:300px;z-index:0;filter:drop-shadow(0 0 30px #dbb85e30);opacity:0;transition:opacity 1s}#discoSphere.ready{opacity:1}.photo-disco .hero{background:linear-gradient(#030303ed 0 285px,#03030350 350px,transparent 550px)}@media(max-width:760px){#discoSphere{width:260px;height:260px;top:12px}.photo-disco .hero{background:linear-gradient(#030303ed 0 245px,#03030350 300px,transparent 480px)}}

.disco-beams{position:absolute;top:-100px;left:0;width:100%;height:600px;overflow:hidden;pointer-events:none;z-index:0;mix-blend-mode:screen}.disco-beams i{position:absolute;top:0;left:48%;height:650px;width:120px;transform-origin:50% 0;background:linear-gradient(#ffe8a537,transparent);filter:blur(18px);clip-path:polygon(45% 0,55% 0,100% 100%,0 100%);animation:beam-turn 8s ease-in-out infinite alternate}.disco-beams i:nth-child(2){animation-delay:-4s;background:linear-gradient(#fff7dd30,transparent);animation-duration:11s}.disco-beams i:nth-child(3){animation-delay:-7s;animation-duration:13s}.disco-stars{position:absolute;inset:0;pointer-events:none;z-index:2}.disco-stars i{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);background:radial-gradient(circle,#fff 0 6%,#fff0bd99 8%,transparent 35%);animation:disco-spark 3.7s var(--delay) infinite;opacity:0}.disco-stars i:before,.disco-stars i:after{content:'';position:absolute;top:50%;left:50%;height:1px;width:100%;background:linear-gradient(90deg,transparent,#fff5cf,white,#fff5cf,transparent);box-shadow:0 0 6px #ffe5a5;transform:translate(-50%,-50%)}.disco-stars i:after{transform:translate(-50%,-50%) rotate(90deg)}#discoSphere{filter:drop-shadow(0 0 25px #e3bd6444) drop-shadow(0 0 55px #e3bd641c)}@keyframes beam-turn{from{transform:rotate(-48deg);opacity:.35}to{transform:rotate(48deg);opacity:.9}}@keyframes disco-spark{0%,45%,100%{opacity:0;transform:scale(.25) rotate(0)}60%{opacity:1;transform:scale(1.4) rotate(15deg)}72%{opacity:.2;transform:scale(.6)}83%{opacity:.85;transform:scale(1) rotate(35deg)}}@media(prefers-reduced-motion:reduce){.disco-stars{display:none}.disco-beams i{animation:none;transform:rotate(30deg)}}
/* Legibilidad sobre fondos con reflejos. */
:root{--muted:#d0c9bc}.photo-disco .ambient{background:linear-gradient(90deg,#000a,#0004 40%,#0004 60%,#000a)}.photo-disco .hero{background:linear-gradient(#030303df 0 280px,#03030370 350px,#0303038c 580px,#03030399)}.hero-title h1,.hero .giant-number{filter:drop-shadow(0 3px 9px #000) drop-shadow(0 0 20px #000)}.hero-title>p{font-size:11px;letter-spacing:4px;color:#f0dfb9;text-shadow:0 2px 7px #000,0 0 14px #000}.hero-date strong{font-size:33px;color:#fff5df;text-shadow:0 2px 8px #000,0 0 18px #000}.scroll-hint{font-size:10px;color:#e8d4a8;letter-spacing:1.5px;text-shadow:0 2px 8px #000;background:#0008;padding:9px 14px;border-radius:20px}.statement{background:linear-gradient(transparent,#0008 25%,#0008 75%,transparent)}.statement h2,.countdown-section h2,.photo-gallery h2,.closing p,.closing>strong{text-shadow:0 3px 8px #000,0 0 25px #000}.statement p:not(.eyebrow){font-size:16px;color:#ece5d6;text-shadow:0 2px 6px #000}.eyebrow{font-size:11px;color:#ecd49e;text-shadow:0 2px 7px #000}.countdown span{font-size:10px;color:#e9d8b4;letter-spacing:2px;text-shadow:0 2px 7px #000}.countdown-section .count-note{font-size:11px;color:#eadbbd;letter-spacing:2px;text-shadow:0 2px 7px #000}.countdown{background:#0005;border-radius:20px;padding:20px 8px;max-width:650px;margin-left:auto;margin-right:auto}.photo-disco .event-ticket,.photo-disco .detail-card,.photo-disco .music-copy{background:linear-gradient(135deg,#251e15ed,#080808ed 65%,#211c14eb)}.detail-card p,.music-copy p,.address,.venue-name{color:#e7e0d2}.detail-card p{font-size:15px}.music-copy p{font-size:21px}.address{font-size:21px;line-height:1.7}.ticket-details span{font-size:10px;color:#e3c991;letter-spacing:1.5px}.ticket-details strong{font-size:16px;color:#f3ead9}.text-link{font-size:11px;line-height:1.8;color:#ead3a0}.gold-button{font-size:11px;letter-spacing:1px}.alias-button small{font-size:10px}.alias-button>span:last-child{font-size:10px}.copy-status{color:#e6d2a8}.rsvp>p:not(.eyebrow){background:#080808eb;color:#eee6d6;font-size:21px}.rsvp-date{font-size:11px;color:#e7d5b0;letter-spacing:1.5px;text-shadow:0 2px 7px #000}.gallery-controls{font-size:12px;background:#0009;border-radius:30px;padding:10px;width:max-content;margin-left:auto;margin-right:auto}.closing{background:linear-gradient(transparent,#0008)}footer{background:#070707b0;color:#c9b797;font-size:9px}.photo-disco .photo-intro{background-image:linear-gradient(#0007,#0008),url('assets/disco-photo.webp')}.intro-kicker{font-size:11px;letter-spacing:2px;color:#f4e7c8;text-align:center;text-shadow:0 2px 8px #000}.intro-invitation{font-size:26px;color:#f0e4cc;text-align:center;text-shadow:0 2px 7px #000,0 0 20px #000}.intro-bottom{font-size:10px;color:#ead3a0;letter-spacing:2px;text-shadow:0 2px 7px #000}.photo-intro .gold-button{font-size:10px}.intro-photo-shade{background:linear-gradient(transparent 20%,#0003 45%,#000e 100%)}.intro-photo-title small{font-size:10px;color:#f7e3b5;letter-spacing:3px;text-shadow:0 2px 5px #000}.intro-photo-title strong{color:#f2d79f;text-shadow:0 2px 9px #000}.music-toggle span{font-size:10px}.music-toggle{background:#110e09f5}.polaroid-caption small{font-size:8px}@media(max-width:760px){.photo-disco .hero{background:linear-gradient(#030303df 0 245px,#03030388 310px,#03030388 580px,#03030399)}.hero-title>p{font-size:10px;letter-spacing:3px}.hero-date strong{font-size:29px}.scroll-hint{font-size:8px;letter-spacing:1px}.statement p:not(.eyebrow){font-size:15px}.countdown span{font-size:8px;letter-spacing:1px}.countdown-section .count-note{font-size:10px;letter-spacing:1px}.countdown{padding:18px 5px}.detail-card p{font-size:14px}.music-copy p{font-size:19px}.address{font-size:19px}.ticket-details span{font-size:9px}.ticket-details strong{font-size:14px}.gold-button{font-size:10px}.music-copy .gold-button{font-size:10px;letter-spacing:.4px;padding:16px 13px;gap:10px}.text-link{font-size:10px}.rsvp>p:not(.eyebrow){font-size:19px}.intro-kicker{font-size:9px;letter-spacing:1.5px;max-width:320px}.intro-invitation{font-size:24px}.intro-bottom{font-size:9px;letter-spacing:1.4px}.intro-photo-title small{font-size:9px}.photo-intro .gold-button{font-size:10px}.photo-gallery>.eyebrow{font-size:10px}.music-toggle span{font-size:9px}.rsvp-date{font-size:10px}}
/* Entrada por capas: primero el retrato, después la invitación. */
.photo-intro{padding:22px 20px;gap:0}.intro-photo-frame{width:min(380px,76vw);height:min(62svh,590px);min-height:290px;padding:8px;animation:portrait-frame-enter 1.8s cubic-bezier(.16,.8,.22,1) both;overflow:visible}.intro-photo-frame>img{animation:portrait-zoom-reveal 2.6s cubic-bezier(.18,.75,.2,1) both;transform-origin:50% 42%}.intro-photo-frame{clip-path:inset(-12px -12px -12px -12px)}.intro-kicker{margin-bottom:19px;animation:portrait-copy-reveal 1s 1.65s both}.intro-photo-shade{animation:portrait-shade-reveal 1.5s 1s both}.intro-age{animation:portrait-copy-reveal 1.1s 1.4s both}.intro-photo-title{animation:portrait-copy-reveal 1.2s 1.7s both;bottom:30px}.intro-photo-title strong{font-size:66px}.intro-invitation{margin:22px 0 17px;animation:portrait-copy-reveal 1.1s 2.1s both}.photo-intro .gold-button{animation:portrait-copy-reveal 1.1s 2.45s both}.intro-bottom{margin-top:20px;animation:portrait-copy-reveal 1.1s 2.7s both}.intro-photo-title small{letter-spacing:4px}.photo-intro.departing .intro-photo-frame{transition:transform 1.1s,filter 1.1s;transform:scale(1.12);filter:blur(4px)}@keyframes portrait-frame-enter{0%{opacity:0;transform:scale(.82) translateY(30px);filter:blur(7px)}65%{opacity:1;filter:blur(0)}100%{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}@keyframes portrait-zoom-reveal{from{transform:scale(1.18);filter:brightness(.7)}to{transform:scale(1);filter:brightness(1)}}@keyframes portrait-copy-reveal{from{opacity:0;transform:translateY(14px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes portrait-shade-reveal{from{opacity:0}to{opacity:1}}@media(max-width:760px){.photo-intro{padding:18px 18px}.intro-photo-frame{width:min(330px,80vw);height:56svh;min-height:270px;max-height:510px}.intro-kicker{margin-bottom:16px}.intro-photo-title strong{font-size:60px}.intro-invitation{margin:20px 0 15px;font-size:23px}.intro-bottom{margin-top:17px}.intro-age{font-size:62px}.intro-photo-title{bottom:24px}}@media(max-height:700px){.intro-photo-frame{height:51svh;min-height:230px}.intro-kicker{margin-bottom:12px}.intro-invitation{margin:15px 0 12px;font-size:22px}.intro-bottom{margin-top:12px}.photo-intro .gold-button{padding:14px 20px}}@media(prefers-reduced-motion:reduce){.intro-photo-frame,.intro-photo-frame>img,.intro-kicker,.intro-photo-shade,.intro-age,.intro-photo-title,.intro-invitation,.photo-intro .gold-button,.intro-bottom{animation:none!important}}
/* La foto principal ocupa toda la entrada. */
.photo-intro{padding:0;justify-content:flex-end;background:#050505!important}.intro-spotlight{display:none}.intro-photo-frame{position:absolute;inset:0;width:100%;height:100%;max-height:none;min-height:0;padding:0;border:0;clip-path:none;box-shadow:none;z-index:-1;overflow:hidden;animation:portrait-frame-enter 1.7s cubic-bezier(.16,.8,.22,1) both}.intro-photo-frame:after{display:none}.intro-photo-frame>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 38%;animation:portrait-zoom-reveal 3s cubic-bezier(.18,.75,.2,1) both}.intro-photo-shade{inset:0;background:linear-gradient(#0002 0%,transparent 30%,#0002 52%,#000b 78%,#000e 100%);animation:none}.intro-photo-title{bottom:190px;left:20px;right:20px;animation:portrait-copy-reveal 1.2s 1.8s both}.intro-photo-title strong{font-size:88px;line-height:1.1}.intro-photo-title small{font-size:12px;letter-spacing:5px}.intro-age{top:35px;left:35px;font-size:88px;text-shadow:0 3px 15px #0008}.intro-kicker{position:absolute;top:40px;right:30px;max-width:190px;text-align:right;line-height:1.8;font-size:10px;letter-spacing:2px;margin:0}.intro-invitation{position:relative;margin:0 20px 18px;font-size:25px}.photo-intro .gold-button{position:relative;min-width:260px;margin:0 20px;font-size:11px;padding:18px 25px}.intro-bottom{position:relative;margin:22px 20px 26px;font-size:10px}.photo-intro.departing .intro-photo-frame{transform:scale(1.08)}@media(min-width:900px){.intro-photo-frame>img{object-fit:contain;background:#050505}.intro-photo-frame:after{display:block;inset:0;border:0;background:linear-gradient(90deg,#0008,transparent 35%,transparent 65%,#0008)}.intro-photo-title{bottom:195px}.intro-invitation{font-size:26px}}@media(max-width:760px){.intro-photo-frame{width:100%;height:100%;max-height:none;min-height:0}.intro-photo-frame>img{object-position:center 35%}.intro-photo-title{bottom:182px}.intro-photo-title strong{font-size:76px}.intro-photo-title small{font-size:11px;letter-spacing:4px}.intro-age{top:28px;left:24px;font-size:74px}.intro-kicker{top:33px;right:22px;max-width:155px;font-size:8px}.intro-invitation{margin:0 15px 17px;font-size:23px}.intro-bottom{margin:20px 15px 24px;font-size:9px}.photo-intro .gold-button{padding:17px 24px}}@media(max-height:700px){.intro-photo-title{bottom:164px}.intro-photo-title strong{font-size:65px}.intro-invitation{font-size:21px;margin-bottom:13px}.intro-bottom{margin:16px 15px 18px}.photo-intro .gold-button{padding:15px 22px}.intro-photo-frame{height:100%;min-height:0}}
/* Entrada cinematográfica y alineación de tarjetas. */
.photo-intro:before{content:'';position:absolute;inset:0;pointer-events:none;z-index:4;background:radial-gradient(ellipse at 50% 35%,#fff4d4,transparent 65%);mix-blend-mode:screen;animation:entrance-flash 2.4s .35s both}.photo-intro:after{content:'';position:absolute;inset:-30%;pointer-events:none;z-index:3;background:linear-gradient(115deg,transparent 35%,#fce4ad38 47%,#fff7e777 50%,transparent 57%);mix-blend-mode:screen;animation:entrance-sweep 2.5s .3s both}.intro-photo-frame{animation:intro-frame-impact 2.4s cubic-bezier(.16,.8,.2,1) both}.intro-photo-frame>img{animation:intro-camera-impact 3.8s cubic-bezier(.15,.7,.2,1) both;transform-origin:50% 43%}.intro-photo-title{animation:title-impact 1.5s 1.8s both}.intro-age{animation:title-impact 1.3s 1.3s both}.intro-invitation{animation:portrait-copy-reveal 1.2s 2.4s both}.photo-intro .gold-button{animation:button-impact 1.1s 2.8s both}.intro-bottom{animation:portrait-copy-reveal 1.2s 3.1s both}body.party-entered .hero-title{animation:hero-impact 1.6s .1s both}body.party-entered .hero-date{animation:portrait-copy-reveal 1.2s .8s both}body.party-entered #discoSphere{animation:sphere-impact 1.8s both}body.party-entered .disco-stars{animation:party-light-impact 2s both}.photo-intro.departing{transition:opacity 1.5s,visibility 1.5s}.photo-intro.departing .intro-photo-frame{transform:scale(1.18);filter:blur(7px)}.event-section,.details,.music-section,.rsvp,.photo-gallery{margin-left:auto;margin-right:auto}.event-ticket,.detail-card,.music-copy{width:100%;margin-left:auto;margin-right:auto;text-align:center}.detail-card{display:flex;flex-direction:column;align-items:center}.detail-card>p{width:100%;text-align:center}.line-icon{flex-shrink:0;margin-left:auto;margin-right:auto}.alias-button{width:100%;max-width:320px;margin-left:auto;margin-right:auto}.music-copy .gold-button,.event-ticket .gold-button{max-width:100%;margin-left:auto;margin-right:auto}.ticket-details{align-items:center}.ticket-details>div{flex:1;text-align:center}.photo-disco .music-copy,.photo-disco .detail-card,.photo-disco .event-ticket{box-sizing:border-box}.rsvp>p:not(.eyebrow){width:100%;margin-left:auto;margin-right:auto}.gold-button{white-space:normal;text-align:center}.copy-status{min-height:20px}.gallery-controls{justify-content:center}@keyframes intro-camera-impact{0%{transform:scale(1.7);filter:brightness(.35) blur(10px)}20%{filter:brightness(.85) blur(2px)}65%{transform:scale(1.025);filter:brightness(1.05) blur(0)}100%{transform:scale(1.07);filter:brightness(1) blur(0)}}@keyframes intro-frame-impact{0%{opacity:0}15%,100%{opacity:1}}@keyframes entrance-flash{0%,100%{opacity:0}17%{opacity:.35}35%{opacity:.06}50%{opacity:.13}75%{opacity:0}}@keyframes entrance-sweep{0%{opacity:0;transform:translateX(-65%) rotate(-7deg)}25%{opacity:.65}80%{opacity:.25}100%{opacity:0;transform:translateX(75%) rotate(7deg)}}@keyframes title-impact{from{opacity:0;transform:translateY(24px) scale(1.13);filter:blur(7px)}65%{opacity:1;filter:blur(0)}to{opacity:1;transform:none;filter:blur(0)}}@keyframes button-impact{from{opacity:0;transform:translateY(20px) scale(.87);box-shadow:0 0 0 #d6b56b00}70%{opacity:1;transform:translateY(-3px) scale(1.02);box-shadow:0 0 35px #d6b56b45}to{opacity:1;transform:none}}@keyframes hero-impact{from{opacity:0;transform:scale(1.3);filter:blur(9px)}60%{opacity:1;transform:scale(.98);filter:blur(0)}to{opacity:1;transform:scale(1);filter:blur(0)}}@keyframes sphere-impact{from{opacity:0;transform:translateX(-50%) scale(.5) translateY(-65px);filter:brightness(2) blur(8px)}60%{opacity:1;transform:translateX(-50%) scale(1.06) translateY(0);filter:brightness(1.2) blur(0)}to{opacity:1;transform:translateX(-50%) scale(1) translateY(0)}}@keyframes party-light-impact{0%{opacity:0}35%{opacity:1}55%{opacity:.3}to{opacity:1}}@media(max-width:760px){.details,.music-section,.event-section{max-width:650px;padding-left:7%;padding-right:7%}.photo-disco .detail-card,.photo-disco .music-copy,.photo-disco .event-ticket{padding-left:22px;padding-right:22px}.music-copy .gold-button{width:100%;font-size:10px}.rsvp{padding-left:7%;padding-right:7%}.ticket-details{gap:12px}.intro-photo-frame>img{transform-origin:50% 42%}}@media(prefers-reduced-motion:reduce){.photo-intro:before,.photo-intro:after{display:none}.intro-photo-frame,.intro-photo-frame>img,.intro-photo-title,.intro-age,.intro-invitation,.photo-intro .gold-button,.intro-bottom,body.party-entered .hero-title,body.party-entered .hero-date,body.party-entered #discoSphere,body.party-entered .disco-stars{animation:none!important}.photo-intro.departing .intro-photo-frame{transform:none;filter:none}}
.event-section,.details,.music-section,.rsvp{width:min(100%,650px);box-sizing:border-box;margin-inline:auto}.event-section,.music-section{display:flex;flex-direction:column;align-items:center}.details{align-items:center}.event-ticket,.detail-card,.music-copy{flex-shrink:0;align-self:center}.gallery-scene{width:100%;box-sizing:border-box}.gallery-stage{transform:rotate(0deg)}

/* Centrado interno consistente, incluidos el alias y la confirmación. */
.event-ticket,.detail-card,.music-copy,.rsvp-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:36px 28px!important;gap:0}.event-ticket>h3,.detail-card>h2,.music-copy>h2{width:100%;text-align:center;margin-left:0;margin-right:0;padding-inline:.12em;box-sizing:border-box}.event-ticket>p,.detail-card>p,.music-copy>p,.rsvp-card>p{width:100%;margin-left:auto;margin-right:auto;text-align:center;text-wrap:pretty}.alias-button{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;padding:18px 22px;width:min(100%,300px)}.alias-button>span{text-align:center;width:100%}.alias-button strong{display:block}.alias-button small{margin-bottom:7px}.alias-button>span:last-child{border-top:1px solid #463a2225;padding-top:10px;letter-spacing:1.5px}.gold-button{justify-content:center;align-items:center;gap:15px}.event-ticket .gold-button,.music-copy .gold-button{width:min(100%,330px)}.rsvp-card{width:100%;margin:0 auto;border:1px solid #e2c88d60;border-radius:24px;background:linear-gradient(135deg,#251e15ed,#080808ed);backdrop-filter:blur(16px);box-shadow:0 18px 50px #0006}.rsvp .rsvp-card>p{border:0;background:transparent;padding:0;margin:0 0 26px;font-family:var(--serif);font-size:21px;line-height:1.7;color:#eee6d6}.rsvp .rsvp-card>.gold-button{margin:0;max-width:100%}.ticket-details{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:18px}.ticket-details>div{text-align:center}.detail-card .dress{width:auto;max-width:100%;margin-left:auto;margin-right:auto}.line-icon{align-self:center}.detail-card h2{line-height:1.4}.music-copy .text-link{width:100%;text-align:center}.rsvp h2{text-align:center;padding-inline:.12em}@media(max-width:760px){.event-ticket,.detail-card,.music-copy,.rsvp-card{padding:30px 22px!important}.rsvp .rsvp-card>p{font-size:19px}.ticket-details{gap:10px}.alias-button{width:min(100%,280px)}}
/* Evitar que los efectos fuera del encuadre desplacen la página al enfocar enlaces. */
html{overflow-x:clip;width:100%;max-width:100%}body{overflow-x:clip;width:100%;max-width:100%;position:relative}main{width:100%;max-width:100%;overflow-x:clip}.photo-intro{max-width:100vw}.event-section,.details,.music-section,.rsvp,.photo-gallery{max-width:100%;max-inline-size:650px}.event-ticket,.detail-card,.music-copy,.rsvp-card{min-width:0}.gold-button,.text-link,.alias-button{overflow-wrap:anywhere}
