:root{--nieve: #f6f3f8;--tinta: #2b2340;--tinta-suave: #5b5175;--rosa: #c9506b;--ambar: #e8a35a;--violeta: #7a6f9b;--noche: #1f1833;--luz: #fff4ec;--display: "Bodoni Moda", "Bodoni 72", Didot, Georgia, serif;--texto: "Newsreader", Georgia, "Times New Roman", serif}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--nieve);color:var(--tinta);font-family:var(--texto);font-size:1.1875rem;line-height:1.75;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%;height:auto}button{font:inherit}:focus-visible{outline:2px solid var(--rosa);outline-offset:4px}.seccion{padding:clamp(4.5rem,11vw,8.5rem) 1.5rem}.columna{max-width:36rem;margin:0 auto}.columna--ancha{max-width:46rem}.ancho{max-width:72rem;margin:0 auto}.titulo{font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(2.4rem,5.5vw,3.75rem);line-height:1.08;letter-spacing:-.015em;margin:0 0 2.75rem}.seccion p,.seccion li,.cumple-mensaje p,.polaroid figcaption{white-space:pre-line}.firma{font-style:italic;text-align:right;margin-top:2.5rem}.hero{position:relative;min-height:100svh;display:grid;grid-template-rows:1fr auto;background:linear-gradient(180deg,#2e2550 0%,#573a6c 36%,#b44e6b 66%,var(--ambar) 100%);color:var(--luz);overflow:hidden}.hero-texto{position:relative;align-self:center;text-align:center;padding:max(3rem,env(safe-area-inset-top)) 1.5rem 1rem}.hero h1{font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(4.5rem,16vw,11rem);line-height:.92;letter-spacing:-.03em;margin:0}.hero-texto p{max-width:28rem;margin:1.75rem auto 0;font-size:clamp(1.15rem,2.2vw,1.35rem);line-height:1.55;opacity:.92}.hero-paisaje{position:relative}.cordillera{display:block;width:100%;height:auto}.sol{fill:#ffd9a0;opacity:.85}.cerro-fondo{fill:#7e4f78}.cerro-frente{fill:var(--nieve)}.ruta{fill:none;stroke:var(--luz);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:2 12}.ruta-mascara{fill:none;stroke:#fff;stroke-width:10;stroke-dasharray:1;stroke-dashoffset:0;animation:trazar 3.2s cubic-bezier(.55,.1,.3,1) .6s both}@keyframes trazar{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}.punto{fill:var(--luz)}.punto--destino{animation:llegar .6s ease-out 3.7s both}@keyframes llegar{0%{opacity:0}to{opacity:1}}.ciudad{position:absolute;transform:translate(-50%,14px);font-style:italic;font-size:clamp(.95rem,2vw,1.15rem);line-height:1.2;color:var(--luz);white-space:nowrap}.hero-paisaje--angosta{display:none}.carta p{margin:0 0 1.4rem}.seccion--carta{background-color:#f8d3d4;background-image:linear-gradient(#fff6f6e6,#fff6f680),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='1600' viewBox='0 0 1200 1600' preserveAspectRatio='none'%3E%3Cfilter id='m' filterUnits='userSpaceOnUse' x='-400' y='-400' width='2000' height='2400' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0018 0.0032' numOctaves='5' seed='14' result='n'/%3E%3CfeDisplacementMap in='n' in2='n' scale='260' xChannelSelector='R' yChannelSelector='G' result='d'/%3E%3CfeComponentTransfer in='d' result='v'%3E%3CfeFuncR type='table' tableValues='0.15 0.7 0.35 0.9 0.45 0.8 0.3 0.95 0.5 0.85 0.4 1'/%3E%3C/feComponentTransfer%3E%3CfeGaussianBlur in='v' stdDeviation='1.2' result='s'/%3E%3CfeColorMatrix in='s' type='matrix' values='0.09 0 0 0 0.92  0.42 0 0 0 0.56  0.38 0 0 0 0.6  0 0 0 0 1'/%3E%3C/filter%3E%3Crect x='-400' y='-400' width='2000' height='2400' filter='url(%23m)'/%3E%3C/svg%3E");background-size:cover;background-position:center}.carta-con-foto{display:grid;grid-template-columns:minmax(14rem,20rem) minmax(0,36rem);justify-content:center;align-items:start;gap:clamp(2.5rem,6vw,5rem);max-width:64rem;margin:0 auto}.polaroid.carta-foto{--giro: -2deg;position:sticky;top:3rem;margin:.5rem 0 0}.carta .corazon{color:var(--rosa)}.carta-saludo{font-family:var(--display);font-style:italic;font-size:1.6rem}.seccion--galeria{background-color:#e4d5e2;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.17 0 0 0 0 0.14 0 0 0 0 0.25 0 0 0 0.28 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),radial-gradient(ellipse 60% 50% at 12% 8%,rgba(201,80,107,.13),transparent 70%),radial-gradient(ellipse 55% 45% at 90% 92%,rgba(122,111,155,.18),transparent 70%),radial-gradient(ellipse 40% 35% at 75% 30%,rgba(232,163,90,.08),transparent 70%)}.galeria{columns:3 17rem;column-gap:2.25rem}.polaroid{break-inside:avoid;margin:0 0 2.5rem;padding:.8rem .8rem 1.1rem;background:#fff;box-shadow:0 1px 2px #2b234014,0 18px 36px -18px #2b234059}.polaroid{--giro: .3deg;rotate:var(--giro)}.polaroid:nth-child(3n+1){--giro: -1.4deg}.polaroid:nth-child(3n+2){--giro: .9deg}.polaroid-boton{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}.polaroid figcaption{margin-top:.9rem;text-align:center;font-style:italic;font-size:1.05rem;line-height:1.4;color:var(--tinta-suave)}.foto-vacia{display:grid;place-items:center;aspect-ratio:4 / 5;padding:1rem;background:linear-gradient(160deg,#e3d8ec,#f2d4d8);color:var(--tinta-suave);font-size:.95rem;text-align:center}.foto-vacia--cargando{background-size:200% 200%;animation:cargando 1.6s ease-in-out infinite alternate}@keyframes cargando{0%{background-position:0% 0%}to{background-position:100% 100%}}.visor{max-width:min(94vw,64rem);max-height:94vh;padding:0;border:0;background:transparent;color:var(--luz)}.visor::backdrop{background:#1f1833e6}.visor-figura{margin:0}.visor-figura img,.visor-figura .foto-vacia{max-height:78vh;width:auto;margin:0 auto}.visor-figura figcaption{margin-top:1rem;text-align:center;font-style:italic}.visor-controles{display:flex;justify-content:center;gap:.75rem;margin-top:1rem}.visor-controles button{padding:.5rem 1.1rem;border:1px solid rgba(255,244,236,.5);border-radius:999px;background:transparent;color:var(--luz);cursor:pointer}.visor-controles button:hover{background:#fff4ec1f}.gracias{margin:0;padding:0;list-style:none}.gracias li{position:relative;padding:1.5rem 0 1.5rem 2.25rem;border-top:1px solid rgba(43,35,64,.14);font-size:clamp(1.3rem,2.6vw,1.55rem);line-height:1.5}.gracias li:last-child{border-bottom:1px solid rgba(43,35,64,.14)}.seccion--oracion{background-color:#f3ebf1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.35 0 0 0 0 0.25 0 0 0 0 0.35 0 0 0 0.22 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.008' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.6 0 0 0 0 0.35 0 0 0 0 0.5 0 0 0 0.35 -0.08'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23m)'/%3E%3C/svg%3E"),radial-gradient(ellipse 70% 45% at 50% 0%,rgba(255,226,176,.45),transparent 70%),radial-gradient(ellipse 50% 40% at 8% 85%,rgba(201,80,107,.08),transparent 70%),radial-gradient(ellipse 50% 40% at 92% 70%,rgba(122,111,155,.1),transparent 70%)}.oracion{text-align:center}.oracion .titulo:after{margin-inline:auto;transform-origin:center}.oracion p{margin:0 0 1.75rem;font-size:clamp(1.25rem,2.4vw,1.45rem);line-height:1.7}.oracion p:first-of-type{font-family:var(--display);font-style:italic;font-size:clamp(1.5rem,3vw,1.85rem)}.oracion .oracion-firma{margin:2.75rem 0 0;text-align:center;font-family:var(--display);font-size:clamp(1.9rem,4vw,2.5rem);color:var(--rosa)}.cumple{position:relative;min-height:100svh;display:grid;grid-template-rows:1fr auto;overflow:hidden;color:var(--luz);isolation:isolate}.cumple-noche,.cumple-amanecer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2}.cumple-noche{background:radial-gradient(1.5px 1.5px at 12% 18%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 28% 42%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 46% 12%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 63% 33%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 78% 16%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 88% 48%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 8% 58%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 55% 62%,#fff 50%,transparent 51%),linear-gradient(180deg,var(--noche) 0%,#2e2550 100%)}.cumple-amanecer{background:linear-gradient(180deg,#3a2c5e 0%,#6b3f6e 40%,#c9506b 72%,var(--ambar) 100%);opacity:0;transition:opacity 2.8s ease}.cumple-sol{position:absolute;left:50%;bottom:-9rem;z-index:-1;width:18rem;height:18rem;border-radius:50%;background:radial-gradient(circle,#ffe2b0,#ffc684 55%,#ffc68400 72%);transform:translate(-50%,100%);transition:transform 3.2s cubic-bezier(.2,.7,.2,1) .4s}.cumple--abierto .cumple-amanecer{opacity:1}.cumple--abierto .cumple-sol{transform:translate(-50%)}.cumple-contenido{align-self:center;width:100%;max-width:52rem;margin:0 auto;padding:5rem 1.5rem;text-align:center}.cumple-titulo{margin:0 0 2rem;font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(3rem,9vw,6rem);line-height:1;letter-spacing:-.025em}.cumple-previa{margin:0 0 2rem;opacity:.85}.boton{padding:.95rem 2rem;border:1px solid var(--luz);border-radius:999px;background:transparent;color:var(--luz);font-size:1.1rem;cursor:pointer}.boton:hover{background:#fff4ec1f}.cumple-mensaje{max-width:36rem;margin:0 auto;text-align:left;font-size:1.25rem;animation:aparecer 1.6s ease .8s both}.cumple-mensaje:focus{outline:none}.cumple-mensaje p{margin:0 0 1.4rem;animation:subir 1.2s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(1.2s + var(--retraso, 0ms))}@keyframes aparecer{0%{opacity:0}to{opacity:1}}.pie{padding:1.5rem 1.5rem max(1.5rem,env(safe-area-inset-bottom));text-align:center;font-style:italic;font-size:.95rem;opacity:.75;transition:color 2.8s ease}.cumple--abierto .pie{color:var(--tinta)}.progreso{position:fixed;inset:0 0 auto;z-index:50;height:3px;background:linear-gradient(90deg,var(--rosa),var(--ambar));transform:scaleX(var(--progreso, 0));transform-origin:left;pointer-events:none}.revelar{opacity:0;translate:0 28px;transition:opacity .9s ease,translate 1s cubic-bezier(.2,.7,.2,1);transition-delay:var(--retraso, 0ms)}.revelar.visible{opacity:1;translate:0 0}.revelar--lado{translate:-28px 0}.firma-trazo{display:inline-block;clip-path:inset(0 100% 0 0);transition:clip-path 1.8s cubic-bezier(.6,.1,.3,1) .4s}.visible .firma-trazo{clip-path:inset(0 0 0 0)}.titulo:after{content:"";display:block;width:3.5rem;height:2px;margin-top:1.1rem;background:linear-gradient(90deg,var(--rosa),var(--ambar));scale:0 1;transform-origin:left;transition:scale 1.1s cubic-bezier(.2,.7,.2,1) .4s}.titulo.visible:after{scale:1 1}.estrellas{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.estrellas span{position:absolute;border-radius:50%;background:#fff;box-shadow:0 0 3px 1px #ffffffe6,0 0 7px 1px #ffecd659;opacity:calc(var(--brillo) * .8);animation:titilar var(--ciclo) cubic-bezier(.45,0,.55,1) var(--desfase) infinite}@keyframes titilar{0%,44%,56%,to{opacity:calc(var(--brillo) * .8);scale:1}50%{opacity:var(--brillo);scale:1.15}}.estrellas .destello:before,.estrellas .destello:after{content:"";position:absolute;left:50%;top:50%;width:700%;height:1px;translate:-50% -50%;background:linear-gradient(90deg,transparent,rgba(255,244,236,.85) 50%,transparent);opacity:0;scale:.2 1;animation:rayo var(--ciclo) cubic-bezier(.45,0,.55,1) var(--desfase) infinite}.estrellas .destello:after{rotate:90deg}.estrellas--entrada span{animation-name:titilar-entrada}.estrellas--entrada .destello:before,.estrellas--entrada .destello:after{width:1100%;animation-name:rayo-entrada}@keyframes titilar-entrada{0%,44%,56%,to{opacity:calc(var(--brillo) * .8);scale:1}50%{opacity:var(--brillo);scale:1.4}}@keyframes rayo-entrada{0%,44%,56%,to{opacity:0;scale:.2 1}50%{opacity:1;scale:1 1}}@keyframes rayo{0%,44%,56%,to{opacity:0;scale:.2 1}50%{opacity:1;scale:1 1}}.letra{display:inline-block;animation:letra-entra 1.1s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(.2s + var(--i) * 80ms)}@keyframes letra-entra{0%{opacity:0;transform:translateY(.35em) rotate(8deg);filter:blur(10px)}to{opacity:1;transform:none;filter:blur(0)}}.hero-texto p{animation:subir 1.2s cubic-bezier(.2,.7,.2,1) 1s both}@keyframes subir{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.hero-texto{translate:0 calc(var(--scroll, 0) * .35px);opacity:calc(1 - var(--scroll, 0) / 650)}.sol,.sol-halo{translate:0 calc(var(--scroll, 0) * .22px)}.cerro-fondo{translate:0 calc(var(--scroll, 0) * .08px)}.sol-halo{fill:#ffd9a0;opacity:.18;transform-box:fill-box;transform-origin:center;animation:respirar 5s ease-in-out infinite}@keyframes respirar{0%,to{scale:.9;opacity:.12}50%{scale:1.1;opacity:.26}}.viajero{opacity:0;animation:viajar 3.2s linear .6s both}.viajero-halo{fill:#fff4ec47}.viajero-luz{fill:#fff}@keyframes viajar{0%{opacity:0}8%,90%{opacity:1}to{opacity:0}}.punto-onda{fill:none;stroke:var(--luz);stroke-width:1.5;opacity:0;transform-box:fill-box;transform-origin:center;animation:onda 2.6s ease-out 3.8s infinite}@keyframes onda{0%{opacity:.9;scale:1}to{opacity:0;scale:4.5}}.ciudad{animation:aparecer 1s ease .5s both}.ciudad:last-of-type{animation-delay:3.8s}.polaroid{position:relative;transition:opacity .9s ease,translate 1s cubic-bezier(.2,.7,.2,1),rotate 1.1s cubic-bezier(.2,.7,.2,1),scale .4s ease,box-shadow .4s ease;transition-delay:var(--retraso, 0ms)}.polaroid.revelar{translate:0 60px;rotate:calc(var(--giro) * 6)}.polaroid.revelar.visible{translate:0 0;rotate:var(--giro)}.polaroid.visible:hover,.polaroid.visible:focus-within{z-index:1;translate:0 -8px;rotate:0deg;scale:1.03;transition-delay:0ms;box-shadow:0 2px 4px #2b23401a,0 30px 50px -20px #2b234073}.polaroid-boton{overflow:hidden}.polaroid-boton img{transition:scale .8s cubic-bezier(.2,.7,.2,1)}.polaroid-boton .foto-ajustada{width:100%;aspect-ratio:var(--formato);object-fit:cover;object-position:var(--encuadre, center)}.polaroid:hover .polaroid-boton img{scale:1.06}.visor[open]{animation:visor-entra .45s cubic-bezier(.2,.7,.2,1)}.visor[open]::backdrop{animation:aparecer .45s ease}.visor-figura{animation:foto-entra .5s cubic-bezier(.2,.7,.2,1)}@keyframes visor-entra{0%{opacity:0;transform:scale(.94) translateY(16px)}to{opacity:1;transform:none}}@keyframes foto-entra{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}.gracias li:before{content:"♥";position:absolute;left:0;top:1.5rem;color:var(--rosa);scale:0;transition:scale .6s cubic-bezier(.3,1.6,.5,1);transition-delay:calc(var(--retraso, 0ms) + .35s)}.gracias li.visible:before{scale:1}.gracias li:hover:before{animation:latir .9s ease-in-out infinite}@keyframes latir{0%,to{scale:1}25%{scale:1.3}45%{scale:1}60%{scale:1.18}}.cumple-estrellas{z-index:-2}.cumple-contenido{position:relative;z-index:1}.boton{transition:background .3s ease,scale .3s ease}.boton:hover{scale:1.04}.boton--latido{animation:pulso 2.4s ease-out infinite}@keyframes pulso{0%{box-shadow:0 0 #fff4ec73}to{box-shadow:0 0 0 18px #fff4ec00}}.cumple-titulo{transition:text-shadow 3s ease}.cumple--abierto .cumple-titulo{text-shadow:0 0 40px rgba(255,217,160,.55)}.cumple--abierto .cumple-sol{animation:respirar-sol 6s ease-in-out 3.6s infinite}@keyframes respirar-sol{0%,to{scale:1}50%{scale:1.08}}.confeti,.corazones{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.confeti span{position:absolute;top:-6vh;animation-name:caer;animation-timing-function:cubic-bezier(.3,.2,.6,1);animation-fill-mode:both}.confeti-papel{width:8px;height:14px;border-radius:2px}.confeti-corazon{font-size:1.2rem;line-height:1}@keyframes caer{0%{opacity:1;transform:translate(0) rotate(0)}85%{opacity:1}to{opacity:0;transform:translate(var(--deriva),112vh) rotate(var(--giro))}}.corazones span{position:absolute;bottom:-2rem;color:#ffe4ecbf;animation-name:flotar;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-fill-mode:both}@keyframes flotar{0%{opacity:0;transform:translate(0)}12%{opacity:.85}50%{transform:translate(22px,-55svh)}to{opacity:0;transform:translate(-12px,-110svh)}}.entrada{position:relative;min-height:100svh;display:grid;place-items:center;padding:2rem 1.5rem;overflow:hidden;background:linear-gradient(180deg,var(--noche) 0%,#2e2550 55%,#573a6c 100%);color:var(--luz);text-align:center}.entrada--saliendo{animation:entrada-sale .9s ease forwards}@keyframes entrada-sale{to{opacity:0;filter:blur(6px);transform:scale(1.04)}}.entrada-contenido{position:relative;width:100%;max-width:24rem;animation:subir 1.2s cubic-bezier(.2,.7,.2,1) .2s both}.entrada-titulo{margin:0;font-family:var(--display);font-style:italic;font-weight:400;font-size:clamp(3.5rem,14vw,6rem);line-height:1;letter-spacing:-.03em}.entrada-bajada{margin:1rem 0 2.5rem;font-size:2rem;line-height:1;color:var(--rosa);text-shadow:0 0 18px rgba(201,80,107,.55);animation:corazon-entra .7s cubic-bezier(.3,1.6,.5,1) .9s both,latir 1.4s ease-in-out 1.8s infinite}@keyframes corazon-entra{0%{scale:0}to{scale:1}}.clave{display:grid;justify-items:center;gap:.75rem}.clave-etiqueta{font-style:italic;opacity:.9}.clave-campo{width:11rem;padding:.6rem .5rem;border:0;border-bottom:1px solid rgba(255,244,236,.6);background:transparent;color:var(--luz);font:inherit;font-size:1.75rem;letter-spacing:.5em;text-align:center;transition:border-color .3s ease}.clave-campo:focus{outline:none;border-bottom-color:var(--luz)}.clave-campo[aria-invalid=true]{border-bottom-color:#f2b6c3}.clave-aviso{min-height:1.5em;margin:0;font-size:.95rem;color:#f2b6c3}.clave .boton:disabled{opacity:.6;cursor:wait}.clave--sacudir-0 .clave-campo{animation:sacudir-a .45s ease}.clave--sacudir-1 .clave-campo{animation:sacudir-b .45s ease}@keyframes sacudir-a{20%,60%{translate:-8px 0}40%,80%{translate:8px 0}}@keyframes sacudir-b{20%,60%{translate:-8px 0}40%,80%{translate:8px 0}}.cumple .clave{animation:aparecer .6s ease both}@media (max-width: 640px){body{font-size:1.0625rem}.galeria{columns:1}.carta-con-foto{grid-template-columns:minmax(0,1fr);gap:2.5rem}.polaroid.carta-foto{position:static;width:min(16rem,75%);margin:0 auto}.hero-paisaje--ancha{display:none}.hero-paisaje--angosta{display:block}.ciudad{transform:translate(-50%,8px)}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.revelar{opacity:1;translate:none}.firma-trazo{clip-path:none}.polaroid.revelar{rotate:var(--giro)}.titulo:after,.gracias li:before{scale:1}}
