@font-face{font-family:Pinyon Script;src:url(fonts/pinyon-script-latin-400-normal.woff2) format("woff2");font-display:swap}@font-face{font-family:Cinzel;font-weight:500;src:url(fonts/cinzel-latin-500-normal.woff2) format("woff2");font-display:swap}@font-face{font-family:Cinzel;font-weight:600;src:url(fonts/cinzel-latin-600-normal.woff2) format("woff2");font-display:swap}@font-face{font-family:EB Garamond;font-weight:400;src:url(fonts/eb-garamond-latin-400-normal.woff2) format("woff2");font-display:swap}@font-face{font-family:EB Garamond;font-weight:500;src:url(fonts/eb-garamond-latin-500-normal.woff2) format("woff2");font-display:swap}:root{--noche: #0a1140;--real: #1c2a80;--tinta: #141c56;--oro: #f2cf82;--oro-hondo: #c99a45;--oro-texto: #74530f;--marfil: #fbf3dd;--luz: #eef0ff;--luz-suave: #c9cdf2;--error: #ffc2b5;--columna: min(100vw, 480px);--sobre-ancho: calc(var(--columna) * .88);--sobre-alto: calc(var(--sobre-ancho) * .68);--sombra: 0 18px 40px -18px rgba(0, 0, 0, .6);--salida: cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0}html{background:var(--noche);height:100%;-webkit-text-size-adjust:100%}::selection{background:var(--oro);color:var(--tinta)}body{height:100vh;height:100svh;overflow:hidden;background:var(--noche);color:var(--luz);font:400 1.14rem/1.5 EB Garamond,Georgia,serif;caret-color:var(--oro);-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--oro);outline-offset:3px;border-radius:6px}h1:focus,h2:focus{outline:none}img,svg,canvas{display:block}img{max-width:100%;height:auto}h1,h2{font-weight:400}[hidden]{display:none!important}.definiciones{position:absolute}.cielo{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}.escenario{position:relative;width:var(--columna);height:100%;margin-inline:auto;overflow:hidden;overflow:clip;background:var(--noche)}.chispas{position:absolute;inset:0;width:100%;height:100%;z-index:30;pointer-events:none}.sonido{position:fixed;z-index:40;top:max(10px,env(safe-area-inset-top));right:max(10px,calc(50vw - 230px));width:44px;height:44px;display:grid;place-items:center;color:var(--oro);background:#0a1140c7;border:1px solid rgba(242,207,130,.55);border-radius:50%;cursor:pointer;transition:opacity .25s,visibility .25s}.sonido--oculto{opacity:0;visibility:hidden}.sonido[aria-pressed=true] .sonido__silencio,.sonido[aria-pressed=false] .sonido__ondas{display:none}.portada{position:absolute;inset:0;z-index:1;overflow:hidden;background:var(--noche)}.portada__lienzo{position:absolute;top:0;left:50%;height:100%;aspect-ratio:2 / 3;transform:translate(-50%)}.portada__lienzo img{width:100%;height:100%}.portada__destellos{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.portada__reflejo{position:absolute;left:21.97%;top:21.81%;width:62.01%;height:12.7%;overflow:hidden;pointer-events:none;-webkit-mask:url(assets/nombre_mascara.webp) center / 100% 100% no-repeat;mask:url(assets/nombre_mascara.webp) center / 100% 100% no-repeat}.portada__reflejo:before{content:"";position:absolute;inset:0 -70%;background:linear-gradient(104deg,transparent 40%,rgba(255,240,200,.35) 47%,rgba(255,250,232,.95) 50%,rgba(255,240,200,.35) 53%,transparent 60%);transform:translate(-70%);animation:cruza-lenta 9s 1.2s cubic-bezier(.45,0,.55,1) infinite}@keyframes cruza-lenta{0%{transform:translate(-70%);opacity:1}24%{transform:translate(70%);opacity:1}25%,to{transform:translate(70%);opacity:0}}.portada__abrir{position:absolute;left:20%;top:80.6%;width:60.2%;height:10.9%;padding:0;background:transparent;border:0;border-radius:999px;cursor:pointer;overflow:hidden;isolation:isolate}.portada__abrir:active{background-color:#ffffff29}.portada__abrir:after{content:"";position:absolute;inset:0 -70%;background:linear-gradient(104deg,transparent 44%,rgba(255,255,255,.34) 50%,transparent 56%);transform:translate(-70%);animation:cruza-lenta 9s 3.3s cubic-bezier(.45,0,.55,1) infinite}.velo{position:absolute;inset:0;z-index:2;background:radial-gradient(circle at 50% 46%,#18237a 0%,var(--noche) 70%);opacity:0;pointer-events:none}.parte{position:absolute;left:calc((var(--columna) - var(--sobre-ancho)) / 2);top:calc(47% - var(--sobre-alto) / 2);width:var(--sobre-ancho);height:var(--sobre-alto);visibility:hidden}.carta-fondo{z-index:3;background:url(assets/lapis.webp);border:1px solid var(--oro-hondo);border-radius:4px;box-shadow:0 30px 50px -22px #000c}.carta-frente{z-index:6;overflow:visible}.carta-viva{position:absolute;inset:0;z-index:5;visibility:hidden;transform-origin:top left;background:url(assets/lapis.webp);will-change:transform}.carta-viva:before{content:"";position:absolute;inset:10px;border:1px solid var(--oro-hondo);outline:1px solid rgba(201,154,69,.5);outline-offset:-6px;border-radius:50% 50% 6px 6px/74px 74px 6px 6px}.carta-solapa{z-index:7;perspective:900px;pointer-events:none}.carta-solapa__giro{position:absolute;inset:0 0 auto;height:62%;transform-origin:top center;transform-style:preserve-3d;will-change:transform}.carta-solapa__cara{position:absolute;inset:0;width:100%;height:100%;backface-visibility:hidden;overflow:visible}.carta-solapa__forro{position:absolute;inset:0;background:url(assets/lapis.webp);clip-path:polygon(0 0,100% 0,50% 98%);transform:rotateX(180deg);backface-visibility:hidden}.sello{position:absolute;z-index:8;left:50%;top:calc(47% - var(--sobre-alto) / 2 + var(--sobre-alto) * .62);width:clamp(104px,31vw,138px);aspect-ratio:1;padding:0;background:none;border:0;border-radius:50%;cursor:pointer;transform:translate(-50%,-50%);visibility:hidden;will-change:transform,opacity}.sello:before{content:"";position:absolute;inset:8% 6% -4%;border-radius:50%;background:radial-gradient(closest-side,#32220880,#32220800)}.sello--rota:before{visibility:hidden}.sello img{position:absolute;inset:0;width:100%;height:100%}.sello__mitad{visibility:hidden;will-change:transform,opacity}.sello--rota .sello__entero{visibility:hidden}.sello--rota .sello__mitad{visibility:visible}.sello__pista{position:absolute;z-index:8;left:16px;right:16px;top:calc(47% + var(--sobre-alto) / 2 + 26px);text-align:center;font-family:Cinzel,serif;font-weight:500;font-size:clamp(.9rem,4vw,1.02rem);line-height:1.4;letter-spacing:.1em;text-transform:uppercase;color:var(--oro);visibility:hidden;will-change:opacity}.libro{position:absolute;inset:0;z-index:10;perspective:1500px;visibility:hidden;touch-action:pan-y}.hoja{position:absolute;inset:0;overflow:hidden;visibility:hidden;transform-origin:left center;backface-visibility:hidden;background:var(--noche)}.libro--visible .hoja--actual{visibility:visible}.hoja__sombra{position:absolute;inset:0;z-index:5;pointer-events:none;background:linear-gradient(90deg,#00000057,#0000000f 40%,#00000038);opacity:0}.hoja__rollo{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-color:var(--oro-hondo) transparent;scrollbar-width:thin}.hoja__rollo>:first-child{flex:1 0 auto}.hoja--lapis{background:url(assets/lapis.webp)}.hoja--papel{background:url(assets/papel.webp);color:var(--tinta)}.hoja--lluvia{background:radial-gradient(circle at 50% 42%,#2a3aa6,#16206f 60%,#0c1450)}.hoja--lapis:before,.hoja--papel:before{content:"";position:absolute;inset:10px;z-index:1;pointer-events:none;border:1px solid var(--oro-hondo);outline:1px solid rgba(201,154,69,.5);outline-offset:-6px;border-radius:50% 50% 6px 6px/74px 74px 6px 6px}.hoja__nav{position:sticky;bottom:0;z-index:3;display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:4px;padding:6px 22px max(18px,env(safe-area-inset-bottom));color:var(--oro);font-family:Cinzel,serif;font-weight:500}.hoja--lapis .hoja__nav{background:linear-gradient(180deg,#0c144a00,#0c144a 26%)}.hoja--papel .hoja__nav{color:var(--tinta);background:linear-gradient(180deg,#fbf3dd00,#fbf3dd 26%)}.hoja__nav button{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:6px 10px;font:inherit;font-size:.94rem;color:inherit;background:none;border:0;cursor:pointer}.hoja--lluvia .hoja__nav{background:linear-gradient(180deg,#0c145000,#0c1450 26%)}.mini-cuenta{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:0 11px;padding-top:6px;font-family:EB Garamond,Georgia,serif;font-weight:400;font-size:.98rem;line-height:1.3}.mini-cuenta__titulo{font-family:Pinyon Script,cursive;font-size:1.5rem;line-height:1}.mini-cuenta b{font-family:Cinzel,serif;font-weight:600;font-size:1.16rem;font-variant-numeric:lining-nums tabular-nums}.cuenta--terminada .mini-cuenta{display:none}.hoja__anterior{justify-content:flex-start}.hoja__folio{text-align:center;font-size:.9rem;opacity:.8}.hoja__siguiente{justify-self:end}.hoja__vacio{width:52px}.titulo-script{font-family:Pinyon Script,cursive;font-size:clamp(2.7rem,12vw,3.4rem);line-height:1.3;color:var(--oro);text-align:center;text-wrap:balance}.titulo-script--tinta{color:var(--tinta)}.carta{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:38px 24px 4px;text-align:center}.carta__corona{width:86px}.carta__erase{margin-top:8px;font-family:Cinzel,serif;font-weight:500;font-size:clamp(.95rem,4.2vw,1.1rem);letter-spacing:.2em;margin-right:-.2em;color:var(--luz);text-transform:uppercase}.carta__nombre{width:100%;margin-top:8px}.nombre{width:100%;height:auto;overflow:visible}.carta__apellido{margin-top:-10px;font-family:Pinyon Script,cursive;font-size:clamp(2.3rem,11vw,2.9rem);line-height:1.3;color:#d5daf8}.carta__invita{margin-top:6px;font-family:Cinzel,serif;font-weight:500;font-size:clamp(.86rem,3.8vw,1rem);letter-spacing:.14em;margin-right:-.14em;text-transform:uppercase;color:var(--oro)}.carta__xv{display:grid;justify-items:center;margin-top:8px;font-family:Cinzel,serif;font-weight:500;font-size:1.1rem;letter-spacing:.34em;text-transform:uppercase;color:var(--oro)}.carta__anos{margin-right:-.34em}.brillo{position:relative;display:block}.brillo--xv{width:clamp(130px,42vw,170px)}.brillo--xv img{width:100%}.brillo__luz{position:absolute;inset:0;overflow:hidden;pointer-events:none}.brillo__luz:before{content:"";position:absolute;inset:0 -70%;background:linear-gradient(104deg,transparent 38%,rgba(255,232,170,.5) 46%,#fffdf2 50%,rgba(255,232,170,.5) 54%,transparent 62%);transform:translate(-70%);opacity:0}.brillo--nombre .brillo__luz{-webkit-mask:url(assets/victoria_mascara.webp) center / 100% 100% no-repeat;mask:url(assets/victoria_mascara.webp) center / 100% 100% no-repeat}.brillo--xv .brillo__luz{-webkit-mask:url(assets/xv_mascara.webp) center / 100% 100% no-repeat;mask:url(assets/xv_mascara.webp) center / 100% 100% no-repeat}.brillo--activo .brillo__luz:before{animation:cruza-letras 5.2s cubic-bezier(.45,0,.55,1) infinite}.brillo--activo.brillo--xv .brillo__luz:before{animation-delay:1.1s}@keyframes cruza-letras{0%{transform:translate(-70%);opacity:1}34%{transform:translate(70%);opacity:1}35%,to{transform:translate(70%);opacity:0}}.carta__fecha{margin-top:12px;font-size:1.28rem;font-weight:500;line-height:1.3;color:var(--marfil)}.carta__fecha span{display:block;color:var(--oro)}.cuenta{width:100%;margin-top:10px}.cuenta__titulo{font-family:Pinyon Script,cursive;font-size:2.3rem;line-height:1.3;color:var(--oro)}.cuenta__reloj{display:grid;grid-template-columns:repeat(4,1fr)}.cuenta__reloj>div{display:grid;gap:2px;padding:2px 6px;border-left:1px solid rgba(242,207,130,.32)}.cuenta__reloj>div:first-child{border-left:0}.cuenta__valor{font-family:Cinzel,serif;font-weight:500;font-size:clamp(1.9rem,9.6vw,2.5rem);line-height:1.15;color:var(--oro);font-variant-numeric:lining-nums tabular-nums}.cuenta__unidad{font-size:.92rem;color:var(--luz-suave)}.cuenta--final .cuenta__reloj{display:none}.celebracion{display:flex;flex-direction:column;justify-content:center;padding:40px 34px 8px}.celebracion__sello{width:84px;margin:0 auto -2px;filter:drop-shadow(0 5px 6px rgba(50,34,8,.4))}.datos{margin-top:8px;display:grid}.datos>div{padding:9px 0 8px;border-top:1px solid rgba(201,154,69,.55)}.datos>div:first-child{border-top:0}.datos dt{font-size:.98rem;color:var(--oro-texto)}.datos dd{margin:0;font-weight:500;font-size:1.24rem;line-height:1.32;text-wrap:balance}.boton{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:56px;padding:12px 22px;font-family:Cinzel,serif;font-weight:600;font-size:1rem;letter-spacing:.05em;text-align:center;text-decoration:none;border-radius:999px;cursor:pointer;transition:transform .18s var(--salida)}.boton:active{transform:scale(.98)}.boton[disabled]{opacity:.65;cursor:progress}.boton--tinta{margin-top:12px;background:var(--tinta);color:var(--oro);border:1px solid var(--tinta);box-shadow:0 10px 22px -12px #00000080}.boton--tinta:focus-visible{outline-color:var(--tinta)}.boton--marfil{background:linear-gradient(180deg,#fff8e6,#f3dfae);color:var(--tinta);border:2px solid var(--oro);box-shadow:0 10px 22px -12px #0009}.boton--linea{background:transparent;color:var(--oro);border:1px solid rgba(242,207,130,.7)}.confirmar{padding:46px 30px 18px}.formulario{display:grid;gap:13px;margin-top:8px}.campo{display:grid;gap:5px;border:0;padding:0;min-width:0}.campo label,.campo legend{font-size:1.08rem;color:var(--luz);padding:0}.campo input[type=text],.campo input[type=tel],.campo textarea{width:100%;min-height:48px;padding:10px 14px;font:inherit;font-size:1.14rem;color:var(--marfil);background:#eef0ff12;border:1px solid rgba(242,207,130,.55);border-radius:12px}.campo textarea{resize:vertical;min-height:66px}.campo input:focus,.campo textarea:focus{outline:none;border-color:var(--oro);background:#eef0ff1f;box-shadow:0 0 0 2px #f2cf8266}.campo input[aria-invalid=true]{border-color:var(--error)}.campo__error{color:var(--error);font-size:1rem}.campo__ayuda{grid-column:1 / -1;font-size:1rem;color:var(--luz-suave)}.campo-trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.eleccion{grid-template-columns:1fr 1fr;gap:8px}.eleccion legend{margin-bottom:5px}.eleccion__opcion{position:relative}.eleccion__opcion input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.eleccion__opcion span{display:grid;place-items:center;min-height:48px;padding:8px;text-align:center;font-size:1.1rem;color:var(--luz);border:1px solid rgba(242,207,130,.55);border-radius:12px}.eleccion__opcion input:checked+span{background:var(--oro);border-color:var(--oro);color:var(--tinta);font-weight:500}.eleccion__opcion input:focus-visible+span{outline:2px solid var(--oro);outline-offset:3px}.formulario__nota{margin-top:-5px;font-size:1.02rem;text-align:center;color:var(--luz-suave)}.formulario__estado{font-size:1.04rem;text-align:center;color:var(--luz)}.formulario__estado:empty{display:none}.formulario__estado--error{color:var(--error)}.enlace-whatsapp{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;color:var(--oro);font-size:1.12rem;text-underline-offset:4px;text-decoration-thickness:1px}.gracias-envio{display:grid;gap:10px;justify-items:center;text-align:center;outline:none}.gracias-envio__texto{max-width:34ch;font-size:1.14rem;line-height:1.38;text-wrap:balance}.confirmar--enviado>h2{display:none}.lluvia__cielo{position:absolute;inset:0;width:100%;height:100%;z-index:1}.lluvia{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:34px 20px 0}.lluvia__titulo{font-family:Pinyon Script,cursive;font-size:clamp(3.7rem,18vw,4.9rem);line-height:1.12;text-align:center;color:var(--oro);text-wrap:balance;text-shadow:0 3px 12px rgba(0,0,0,.55)}.sobre{position:relative;display:block;flex:none;width:min(92%,360px);aspect-ratio:1 / 1.1;margin:12px auto 0;padding:0;background:none;border:0;font:inherit;color:var(--tinta);cursor:pointer;perspective:900px}.sobre__fondo,.sobre__frente{position:absolute;left:0;right:0;bottom:0;height:58%}.sobre__fondo{background:url(assets/lapis.webp);border-radius:4px;box-shadow:0 24px 40px -18px #000000bf}.sobre__frente{width:100%;z-index:3;overflow:visible}.sobre__carta{position:absolute;z-index:2;left:6%;right:6%;top:0;height:74%;display:grid;align-content:start;justify-items:center;gap:8px;padding:20px 16px 12px;text-align:center;background:url(assets/papel.webp);border:1px solid var(--oro-hondo);border-radius:5px;font-size:clamp(1.14rem,5vw,1.26rem);line-height:1.3;transform-origin:top center;will-change:transform;transition:transform 1s cubic-bezier(.45,.05,.2,1)}.sobre__carta span,.sobre__carta strong{text-wrap:balance}.sobre__carta strong{font-family:Pinyon Script,cursive;font-weight:400;font-size:clamp(1.9rem,8.6vw,2.25rem);line-height:1.16;color:var(--tinta)}.sobre__solapa{position:absolute;z-index:1;left:0;right:0;top:42%;height:35%;transform-origin:top center;transform:rotateX(180deg);transition:transform .85s cubic-bezier(.45,.05,.2,1),z-index 0s .3s;will-change:transform}.sobre__solapa svg{width:100%;height:100%;overflow:visible}.sobre__lacre{position:absolute;left:50%;top:100%;width:84px;margin:-54px 0 0 -42px;opacity:0;transition:opacity .3s}.sobre--cerrado .sobre__carta{transform:translateY(62%) scaleY(.6)}.sobre--cerrado .sobre__solapa{z-index:4;transform:rotateX(0);transition:transform .8s cubic-bezier(.45,.05,.2,1),z-index 0s}.sobre--cerrado .sobre__lacre{opacity:1;transition:opacity .3s .35s}.cierre__ventana{width:min(46%,170px);padding:5px;border:1px solid var(--oro);border-radius:999px 999px 12px 12px;box-shadow:var(--sombra)}.cierre__ventana img{width:100%;aspect-ratio:5 / 6.4;object-fit:cover;object-position:50% 26%;border-radius:999px 999px 8px 8px}.cierre__acciones{display:grid;gap:10px;width:100%;margin-top:4px}.cierre__estado{margin-top:10px;font-size:1.02rem;color:var(--luz)}.cierre__estado:empty{display:none}@media (prefers-reduced-motion: reduce){.portada__reflejo:before,.portada__abrir:after,.brillo__luz:before{animation:none!important}.sobre__carta,.sobre__solapa,.sobre__lacre,.boton{transition:none}}
