
/* Celeste: noche estrellada. Los colores salen de estas variables (paletas en demo/shared/content.js). */
:root{
  --bg:#0B1430;--bg2:#131F48;--ink:#EEF1FA;--silver:#C9D2E6;--moon:#F4E9C8;--accent:#8FA7E0;--neb1:#3A4C9A;--neb2:#7A4C9A;--soft:#E4E9F7dd;
  /* Panel de los novios y música (demo/shared/panel.css) */
  --p-bg:#EEF1FA;--p-surface:#FFFFFF;--p-ink:var(--bg);--p-muted:#5B6585;--p-line:#C9D2E6;--p-accent:var(--bg);--p-on-accent:var(--moon);
  --p-serif:Italiana,Georgia,serif;--p-sans:'Tenor Sans',Helvetica,sans-serif;--m-bg:var(--bg2);--m-fg:var(--moon);--m-border:#ffffff44
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:Spectral,Georgia,serif;font-weight:300;color:var(--ink);background-color:var(--bg)}
body.locked{overflow:hidden}
h1,h2,h3,p,blockquote{margin:0}
img{display:block;max-width:100%}
a{color:inherit}
button{font-family:inherit}
details summary{list-style:none;cursor:pointer}
details summary::-webkit-details-marker{display:none}
a:focus-visible,button:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--moon);outline-offset:3px}
.ph-img{width:100%;height:100%;object-fit:cover}
.in-w{position:relative;max-width:560px;margin:0 auto}
.it{font-family:Italiana,serif}
.tn{font:400 11px 'Tenor Sans',sans-serif;letter-spacing:.32em;text-transform:uppercase;color:var(--accent)}
.sky,body{background-image:var(--st1),var(--st2),radial-gradient(ellipse at 15% 8%,color-mix(in srgb,var(--neb1),transparent 55%),transparent 50%),radial-gradient(ellipse at 90% 55%,color-mix(in srgb,var(--neb2),transparent 62%),transparent 55%),radial-gradient(ellipse at 35% 100%,#1C6E8A40,transparent 60%);background-size:320px,520px,100% 100%,100% 100%,100% 100%;background-attachment:fixed}
.sky{background-color:var(--bg)}
.silver{background:linear-gradient(110deg,#9AA6C2,#FFFFFF 30%,#B9C3DB 45%,#F4F6FF 55%,#8E9AB8 70%,#E6EBF7 85%,#9AA6C2);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:mShine 7s ease-in-out infinite alternate}
@keyframes mShine{to{background-position:100% 0}}
.sec{position:relative;padding:68px 24px;text-align:center}
.sec h2{font:400 clamp(34px,5vw,42px)/1.1 Italiana,serif;letter-spacing:.04em;margin:12px 0 14px}
.sec p{font-size:16.5px;line-height:1.8;color:var(--soft)}
.glass{background:linear-gradient(160deg,#ffffff14,#ffffff06);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #ffffff26;border-radius:22px;box-shadow:inset 0 1px 0 #ffffff22,0 20px 40px -24px #000c}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 26px;border:1px solid #ffffff66;border-radius:999px;background:linear-gradient(#ffffff26,#ffffff0a);color:var(--ink);font:400 11px 'Tenor Sans';letter-spacing:.24em;text-transform:uppercase;text-decoration:none;cursor:pointer;box-shadow:0 0 24px #9FB6FF33}
.twk{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.twk span{position:absolute;width:var(--s);height:var(--s);opacity:0;animation:tw var(--du) ease-in-out var(--de) infinite}
.twk svg{display:block;width:100%;height:100%}
@keyframes tw{0%,100%{opacity:0;transform:scale(.2) rotate(0)}50%{opacity:1;transform:scale(1) rotate(45deg)}}
.shoot{position:absolute;width:130px;height:1.5px;background:linear-gradient(90deg,transparent,#fff);border-radius:2px;pointer-events:none;opacity:0;rotate:28deg;filter:drop-shadow(0 0 4px #fff);animation:shoot var(--du,9s) ease-in var(--de,0s) infinite}
@keyframes shoot{0%{opacity:0;transform:translateX(-160px)}2%{opacity:1}9%{opacity:0;transform:translateX(320px)}100%{opacity:0;transform:translateX(320px)}}
.moonball{border-radius:50%;background:radial-gradient(circle at 36% 32%,#ffffff1f,transparent 45%),radial-gradient(circle at 50% 50%,transparent 58%,#2a24183d 88%,#1a160e70),var(--moonimg) center/cover,#E6E1D3;box-shadow:0 0 34px #F4E9C855,0 0 90px #F4E9C82b,inset -6px -8px 18px #00000038}
.phases{display:flex;justify-content:center;gap:9px}
.phases i{width:12px;height:12px;border-radius:50%;background:var(--moon);box-shadow:inset var(--x) 0 0 0 var(--bg),0 0 6px #F4E9C855}
@keyframes mGlow{to{box-shadow:0 0 60px #F4E9C899,0 0 120px #F4E9C844}}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- Apertura: luna y constelación ---------- */
.opening{position:fixed;inset:0;z-index:60;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:22px;text-align:center;transition:opacity .9s,visibility 0s .9s,transform .9s,filter .9s}
.opening>*{position:relative}
.opening>.twk,.opening>.shoot{position:absolute}
.opening.gone{opacity:0;visibility:hidden;pointer-events:none}
.opening.warp{transform:scale(1.7);filter:blur(6px);opacity:0}
.moonbtn{width:96px;height:96px;flex:none;border:0;padding:0;cursor:pointer;animation:mGlow 3s ease-in-out infinite alternate;transition:transform .8s cubic-bezier(.4,0,.2,1)}
.lit .moonbtn{transform:scale(.62) translateY(-10px)}
.constel{width:250px;height:230px;flex:none;margin:-6px 0}
.constel .ln{fill:none;stroke:#DDE5FF;stroke-width:.9;stroke-dasharray:1;stroke-dashoffset:1;opacity:.85;transition:stroke-dashoffset 2.2s cubic-bezier(.5,0,.3,1)}
.constel circle{fill:#fff;opacity:.45;filter:drop-shadow(0 0 3px #fff);transition:opacity .6s}
.lit .constel .ln{stroke-dashoffset:0}
.lit .constel circle{opacity:1}
.constel .ini{opacity:0;transition:opacity 1.2s 1.6s}
.lit .constel .ini{opacity:1}
.told{opacity:0;max-height:0;overflow:hidden;transition:opacity 1s,max-height 1s}
.lit .told{opacity:1;max-height:280px;transition-delay:1.8s}
.ask{transition:opacity .5s,max-height .5s;max-height:120px}
.lit .ask{opacity:0;max-height:0;overflow:hidden}
.told .cl{text-transform:lowercase}
@media (max-height:720px){.constel{width:200px;height:184px}.opening{gap:8px}}

/* ---------- Invitación ---------- */
.mbar{position:fixed;z-index:50;left:max(10px,calc(50% - 290px));right:max(10px,calc(50% - 290px));top:10px;height:48px;padding:0 20px;border-radius:999px;display:flex;align-items:center;justify-content:space-between;opacity:0;transform:translateY(-70px);transition:opacity .5s,transform .6s cubic-bezier(.22,1,.36,1);pointer-events:none;background:#ffffff14;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:inset 0 0 0 1px #ffffff30,0 10px 24px -14px #000}
.mbar.show{opacity:1;transform:none}
.hero{position:relative;padding:70px 24px 60px;text-align:center;overflow:hidden}
.aurora{position:absolute;left:-40%;right:-40%;top:-60px;height:320px;pointer-events:none;background:linear-gradient(100deg,transparent 15%,color-mix(in srgb,var(--accent),transparent 45%) 32%,#7FE0C855 45%,color-mix(in srgb,var(--neb2),transparent 40%) 60%,transparent 78%);filter:blur(36px);opacity:.55;animation:aur 14s ease-in-out infinite alternate}
@keyframes aur{0%{transform:translateX(-12%) skewY(-7deg)}100%{transform:translateX(12%) skewY(5deg)}}
.orbit{position:relative;width:280px;height:280px;margin:18px auto 14px}
.orbit .pic{position:absolute;inset:40px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 1px #ffffff55,0 0 50px #F4E9C855,0 0 120px #8FA7E033}
.orbit .pic img{position:relative;height:124%;top:-12%;filter:saturate(.85) contrast(1.05)}
.ring{position:absolute;inset:0;border-radius:50%;border:1px solid #ffffff2a;animation:spin var(--du) linear infinite}
.ring::after{content:"";position:absolute;top:50%;left:-4px;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:var(--c);box-shadow:0 0 10px var(--c)}
.ring.r2{inset:16px;border-style:dashed;border-color:#ffffff1c;animation-direction:reverse}
.ring.r2::after{left:auto;right:-3px;width:6px;height:6px}
.hero h1{font:400 clamp(58px,8vw,72px)/1 Italiana,serif;letter-spacing:.02em}
.hero h1 .amp{display:block;font:italic 300 24px Spectral;color:var(--moon);margin:4px 0}
.hero .date{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:16px;font:400 13px 'Tenor Sans';letter-spacing:.28em}
.star4{display:inline-block;width:9px;height:9px;background:var(--moon);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
.hero .msg{margin-top:16px;font:italic 300 19px/1.5 Spectral}
.hero .in-w>*{position:relative}
.planets{position:relative;height:250px;margin-top:20px}
.planets svg{position:absolute;inset:0;width:100%;height:100%}
.planets .p{position:absolute;border-radius:50%;overflow:hidden;box-shadow:0 0 0 1px #ffffff44,0 0 26px #8FA7E055}
.planets .p:nth-of-type(1){width:118px;height:118px;left:4%;top:70px}
.planets .p:nth-of-type(2){width:92px;height:92px;left:40%;top:6px}
.planets .p:nth-of-type(3){width:104px;height:104px;right:2%;top:120px}
.planets .p:nth-of-type(n+4){display:none}
.moons{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:28px auto 0;max-width:440px}
.moons>div{display:flex;flex-direction:column;align-items:center;gap:10px}
.moons .moonball{width:66px;height:66px;display:grid;place-items:center;animation:mGlow 3s ease-in-out infinite alternate}
.moons>div:nth-child(2) .moonball{animation-delay:-.8s}.moons>div:nth-child(3) .moonball{animation-delay:-1.6s}.moons>div:nth-child(4) .moonball{animation-delay:-2.4s}
.moons b{font:400 26px Italiana;color:#1B2348;text-shadow:0 0 6px #F4EFE2,0 0 2px #F4EFE2;font-variant-numeric:tabular-nums}
.moons span{font:400 9px 'Tenor Sans';letter-spacing:.24em;text-transform:uppercase;color:var(--silver)}
.tl{position:relative;margin-top:24px;text-align:left;padding-left:44px}
.tl svg.line{position:absolute;left:12px;top:6px;height:calc(100% - 20px);width:12px;overflow:visible}
.tl>div{position:relative;padding-bottom:26px}
.tl>div::before{content:"";position:absolute;left:-40px;top:4px;width:16px;height:16px;background:var(--moon);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);filter:drop-shadow(0 0 6px #fff);animation:pulseS 2.4s ease-in-out infinite alternate}
@keyframes pulseS{to{transform:scale(1.3) rotate(45deg)}}
.tl .tm{font:400 11px 'Tenor Sans';letter-spacing:.26em;color:var(--accent);text-transform:uppercase}
.tl h3{font:400 28px Italiana;margin:4px 0}
.sec .tl p{font-size:15px;line-height:1.6}
.tl a{display:inline-block;margin-top:6px;font:400 10px 'Tenor Sans';letter-spacing:.22em;color:var(--moon);text-decoration:none;border-bottom:1px solid #F4E9C866;padding-bottom:3px}
.gc{padding:30px 22px;margin-top:18px}
.planetchips{display:flex;justify-content:center;gap:12px;margin-top:14px}
.planetchips i{width:30px;height:30px;border-radius:50%;background-image:radial-gradient(circle at 35% 30%,#ffffffcc,transparent 45%);box-shadow:0 0 14px #ffffff55}
.lz-content .planetchips{display:none}
.gcs{display:flex;flex-direction:column;gap:14px;margin-top:22px;text-align:left}
.gcs>div{padding:24px 22px}
.gcs svg{color:var(--moon)}
.gcs h3{font:400 24px Italiana;margin:8px 0 6px}
.sec .gcs p{font-size:15px;line-height:1.65}
.gcs b{font-weight:400;color:#fff}
blockquote{margin:6px 0 12px;font:400 30px/1.3 Italiana,serif}
.cst{position:absolute;width:110px;pointer-events:none;opacity:.8;z-index:0}
.cst line{stroke:#DDE5FF;stroke-width:.7;stroke-opacity:.55}
.cst circle{fill:#fff;filter:drop-shadow(0 0 3px #fff)}
.faq{text-align:left;margin-top:16px}
.faq details{border-bottom:1px solid #ffffff22}
.faq summary{display:flex;justify-content:space-between;gap:12px;padding:17px 0;font:400 18px Spectral}
.faq summary::after{content:"";flex:none;width:12px;height:12px;margin-top:5px;background:var(--moon);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);transition:rotate .4s}
.faq details[open] summary::after{rotate:45deg}
.sec .faq p{font-size:15px;padding-bottom:16px}
.person{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:13px 0;border-bottom:1px solid #ffffff1c;text-align:left}
.person span{font:400 17px Spectral}
.person>div{display:flex;gap:6px;flex:none}
.person button{min-height:36px;padding:7px 12px;border:1px solid #ffffff55;border-radius:999px;background:none;color:var(--ink);font:400 10px 'Tenor Sans';letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.person button[aria-pressed=true]{background:var(--moon);border-color:var(--moon);color:#1B2348;box-shadow:0 0 14px #F4E9C888}
label{display:block;text-align:left;font:400 10px 'Tenor Sans';letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-top:18px}
textarea{width:100%;margin-top:8px;border:1px solid #ffffff2a;border-radius:12px;background:#ffffff0d;padding:10px;font:300 16px Spectral;color:var(--ink);resize:none}
.rs-err{margin-top:14px;font-size:14px;color:var(--moon)}
.wish{position:fixed;z-index:70;width:110px;height:1.5px;border-radius:2px;background:linear-gradient(90deg,transparent,#fff);filter:drop-shadow(0 0 4px #fff);pointer-events:none;transform-origin:0 50%}
footer{position:relative;padding:64px 20px 120px;text-align:center}

/* ---------- Movimiento ---------- */
[data-rv]{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform 1s cubic-bezier(.22,1,.36,1)}
[data-rv].in,.lz-editor [data-rv]{opacity:1;transform:none}
.draw path,.draw line{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2s cubic-bezier(.5,0,.3,1)}
.draw.in path,.draw.in line{stroke-dashoffset:0}
.letters b{display:inline-block;font-weight:inherit;opacity:0;filter:blur(8px);transform:translateY(16px) scale(1.4);transition:opacity .9s,filter .9s,transform .9s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--i) * 90ms + .2s)}
.letters.in b{opacity:1;filter:none;transform:none}
@media (min-width:700px){.sec{padding-left:40px;padding-right:40px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none !important;transition:none !important}[data-rv]{opacity:1;transform:none}.draw path,.draw line{stroke-dashoffset:0}.letters b{opacity:1;filter:none;transform:none}.twk,.shoot{display:none}}

/* A moonlit invitation: spacious photographs, fine orbital lines and restrained light. */
html{overflow-x:clip}
.sky,body{background-attachment:scroll}
.silver{animation:none}
.in-w{max-width:760px}
.sec{padding-block:clamp(64px,8vw,108px);overflow:clip}
.sec h2{font-size:clamp(34px,5vw,48px)}
.tn{font-size:12px;letter-spacing:.2em}
.sec p{font-size:17px}
.glass{border-radius:6px;background:linear-gradient(145deg,#ffffff09,#ffffff02);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:inset 0 1px #ffffff12,0 22px 60px -45px #000}
.btn{min-height:48px;font-size:12px;letter-spacing:.14em;box-shadow:none;transition:background .2s,border-color .2s}
.btn:hover{background:#ffffff25;border-color:var(--moon)}
.opening{display:block;padding:0;overflow-y:auto;transition:opacity .65s,visibility 0s .65s}
.opening>.phases{position:absolute;top:30px;left:0;right:0}
.opening>p.tn{position:absolute;top:67px;left:24px;right:24px;max-width:440px;margin:auto;font-size:11px;line-height:1.7;transition:opacity .35s}
.moonbtn{position:absolute;left:50%;top:50%;width:clamp(220px,62vw,310px);height:auto;aspect-ratio:1;transform:translate(-50%,-50%);animation:none;box-shadow:0 0 65px #F4E9C833,0 0 150px #8FA7E022,inset -12px -16px 28px #0004;transition:transform 1.2s cubic-bezier(.22,1,.36,1),box-shadow 1.2s}
.lit .moonbtn{transform:translate(-50%,-50%) translateY(var(--moon-rise)) scale(.26);box-shadow:0 0 65px #F4E9C833}
.opening .ask{position:absolute;left:20px;right:20px;top:calc(50% + clamp(110px,31vw,155px) + 30px);max-height:none}
.ask .tn{font-size:12px}
.lit .ask{max-height:none;pointer-events:none}
.lit>p.tn,.lit>.phases{opacity:0}
.constellation{position:absolute;top:132px;left:50%;width:220px;height:202px;transform:translateX(-50%);opacity:0;transition:opacity .5s .55s;pointer-events:none}
.constel{width:100%;height:100%;margin:0}
.constel .ln{transition:stroke-dashoffset 1.1s .45s}
.constellation-mark{position:absolute;inset:34% 26%;display:grid;place-items:center;font:32px Italiana;color:var(--moon)}
.constellation-mark img{width:100%;height:100%;object-fit:contain}
.lit .constellation{opacity:1}
.told{position:absolute;top:344px;left:24px;right:24px;max-width:520px;margin:auto;max-height:none;overflow:visible;visibility:hidden;transform:translateY(12px);transition:opacity .5s .75s,transform .5s .75s,visibility 0s .75s}
.lit .told{visibility:visible;max-height:none;transform:none;transition-delay:.75s}
.told>p:first-child{overflow-wrap:anywhere;line-height:1.15!important}
.told .tn{line-height:1.8}
.lit{min-height:100%;padding-bottom:32px}
.lit::after{content:"";display:block;height:600px;pointer-events:none}
.hero{padding-block:80px 72px}
.orbit{width:min(80vw,400px);height:auto;aspect-ratio:1;margin:26px auto 30px}
.orbit .pic{inset:38px;box-shadow:0 0 0 1px #ffffff55,0 12px 50px #0003}
.orbit .pic img{height:100%;top:0;filter:none}
.ring{animation-duration:70s}
.hero h1{font-size:clamp(60px,7vw,94px);overflow-wrap:anywhere}
.letters b{opacity:1;filter:none;transform:none;transition:none}
.hero .date{font-size:14px;letter-spacing:.16em;flex-wrap:wrap}
.hero .msg{max-width:44ch;margin-inline:auto;font-size:21px}
.planets{max-width:650px;height:370px;margin:32px auto 8px}
.planets .p{box-shadow:0 0 0 1px #ffffff66,0 15px 35px #0004}
.planets .p:nth-of-type(1){width:40%;height:auto;aspect-ratio:1;left:1%;top:60px}
.planets .p:nth-of-type(2){width:30%;height:auto;aspect-ratio:1;left:43%;top:0}
.planets .p:nth-of-type(3){width:33%;height:auto;aspect-ratio:1;right:0;top:165px}
.gallery-link{border:0;border-bottom:1px solid #ffffff66;background:none;color:var(--moon);padding:14px 4px;min-height:48px;font:12px 'Tenor Sans';letter-spacing:.08em;cursor:pointer}
.moons{max-width:520px;gap:12px}
.moons .moonball{width:clamp(55px,16vw,82px);height:auto;aspect-ratio:1;animation:none;box-shadow:0 0 25px #F4E9C822}
.moons b{font-size:30px;font-weight:400}
.moons span{font-size:11px;letter-spacing:.1em}
.tl{max-width:640px;margin:36px auto 0}
.tl>div{padding-bottom:36px}
.tl>div::before{animation:none}
.sec .tl .tm{font:14px 'Tenor Sans';letter-spacing:.1em;color:var(--moon)}
.tl h3{font-size:32px;margin-block:8px}
.sec .tl p{font-size:17px}
.tl a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:12px;letter-spacing:.08em}
.gcs{gap:20px}
.gcs>div{padding:28px}
.gcs h3{font-size:29px}
.sec .gcs p{font-size:17px}
.sec .demo-booking,.sec .demo-note{font:12px/1.7 'Tenor Sans';letter-spacing:0;color:var(--silver);margin-top:18px}
.demo-booking:has(~*){display:block}
.gcs>div:has([data-lz-href=hotelLink]:not([hidden])) .demo-booking{display:none}
blockquote{max-width:650px;margin-inline:auto;font-size:clamp(30px,4vw,42px);line-height:1.45;padding:8px}
.faq summary{min-height:60px;font-size:20px;align-items:center}
.faq summary::after{clip-path:none;width:16px;height:16px;margin:0;background:linear-gradient(var(--moon),var(--moon)) center/100% 1px no-repeat,linear-gradient(var(--moon),var(--moon)) center/1px 100% no-repeat}
.faq details[open] summary::after{rotate:0deg;background-size:100% 1px,1px 0}
.sec .faq p{font-size:17px}
#rsvp .in-w{max-width:650px}
.person{flex-wrap:wrap;gap:12px;padding-block:18px}
.person>span{flex:1 1 160px;font-size:18px}
.person button{min-height:48px;font-size:12px;letter-spacing:0;padding:10px 14px}
.person button[aria-pressed=true]{box-shadow:none}
label{font-size:12px;letter-spacing:.08em;line-height:1.6}
textarea{padding:12px;font:16px/1.6 'Tenor Sans';resize:vertical;min-height:96px}
.wish{max-width:60px}
@media(min-width:1000px){
.hero .in-w{max-width:1080px;display:grid;grid-template-columns:1fr 1fr;column-gap:64px;align-items:center}
.hero .orbit{grid-column:1;grid-row:1/7;width:100%;max-width:440px;margin:auto}
.hero .in-w>:not(.orbit){grid-column:2}
.hero h1{font-size:90px}
.hero .in-w>.phases{align-self:end;margin-bottom:16px}
.gcs{display:grid;grid-template-columns:1fr 1fr}.gcs>div:first-child{grid-row:span 2;display:flex;flex-direction:column;justify-content:center}
#viaje .in-w{max-width:1000px}
}
@media(max-width:480px){.planets{height:250px}.planets .p:nth-of-type(3){top:125px}.sec{padding-inline:20px}.hero{padding-inline:20px}.glass{border-radius:4px}.person>div{flex-wrap:wrap}.person button{padding-inline:12px}.told>p:first-child{font-size:36px!important}.opening>p.tn{font-size:10px}}
@media(max-height:650px){.opening>.phases{top:16px}.opening>p.tn{top:42px}.moonbtn{width:min(48vh,250px)}.opening .ask{top:calc(50% + min(24vh,125px) + 20px)}.constellation{top:112px;width:170px;height:156px}.told{top:280px}.lit::after{height:520px}}
@media(prefers-reduced-motion:reduce){.moonbtn,.told,.constellation{transition:none!important}.told{transition-delay:0s!important}}

.person .person-error{flex-basis:100%;font-size:14px;color:var(--moon);line-height:1.5}
.reply-list{list-style:none;padding:0;margin:18px 0 0;text-align:left}
.reply-list li{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid #ffffff22}
.reply-list b{font-weight:400}
.wish-layer{position:fixed;inset:0;z-index:70;overflow:hidden;pointer-events:none}
#invite .ring,#invite .twk span,#invite .shoot,#invite .aurora{animation-play-state:paused}
#invite .motion-active .ring,#invite .motion-active .twk span,#invite .motion-active>.shoot,#invite .motion-active .aurora{animation-play-state:running}
body.locked #invite *,html.motion-paused *{animation-play-state:paused!important}
.sec p.tn{font:400 12px/1.7 'Tenor Sans',sans-serif;letter-spacing:.2em;color:var(--accent)}

/* Celeste · an engraved lunar atlas, with the couple at its centre. */
:root{--cel-line:color-mix(in srgb,var(--moon),transparent 76%);--cel-faint:color-mix(in srgb,var(--silver),transparent 90%)}
body{background-size:640px,1040px,100% 100%,100% 100%,100% 100%;background-image:var(--st1),var(--st2),radial-gradient(ellipse at 12% 5%,color-mix(in srgb,var(--neb1),transparent 78%),transparent 45%),radial-gradient(ellipse at 90% 60%,color-mix(in srgb,var(--neb2),transparent 86%),transparent 45%),none}
.silver{background:none;color:var(--ink)}
.moonball{background:var(--moonimg) center/112% 112% no-repeat;box-shadow:0 0 45px #e6debd20;isolation:isolate}
.moonbtn{background-color:transparent;box-shadow:0 0 70px #e6debd18,0 0 160px #8FA7E015}
.celestial-dial{position:absolute;inset:0;width:100%;height:100%;color:var(--moon);pointer-events:none}
.opening-dial{position:absolute;left:50%;top:50%;width:clamp(290px,82vw,420px);aspect-ratio:1;transform:translate(-50%,-50%);opacity:.44;transition:opacity .6s,transform 1.2s cubic-bezier(.22,1,.36,1);pointer-events:none}
.lit .opening-dial{opacity:0;transform:translate(-50%,-50%) scale(.75)}
.opening>p.tn{max-width:380px;letter-spacing:.3em;line-height:2}
.ask .it{font-size:24px!important}
.ask p.tn{margin-top:15px!important;letter-spacing:.22em;font-size:10px}
.opening .ask{top:calc(50% + clamp(145px,41vw,210px) + 14px)}
.told .btn{margin-top:24px!important}
.btn{border-radius:2px;border-color:var(--cel-line);background:linear-gradient(110deg,#ffffff0d,#ffffff03);padding-inline:28px}
.btn::before,.btn::after{content:"";width:3px;height:3px;background:var(--moon);transform:rotate(45deg);flex:none;opacity:.7}
.person button{border-radius:3px}
.hero{padding-block:clamp(80px,10vw,140px);border-bottom:1px solid var(--cel-faint)}
.hero .aurora{opacity:.17;height:520px}
.hero .orbit{width:min(88vw,460px);margin-block:40px}
.orbit .pic{inset:56px;border:6px solid var(--bg);box-shadow:0 0 0 1px var(--cel-line),0 24px 60px #0004}
.orbit .celestial-dial{opacity:.65;transform:rotate(-8deg)}
.orbit .ring{inset:29px;border:none}
.orbit .r2{display:none}
.orbital-moon{position:absolute;z-index:2;right:2%;top:13%;width:16%;aspect-ratio:1;border-radius:50%;filter:drop-shadow(0 5px 10px #0005)}
.hero .date{margin-top:28px;padding-block:20px;border-block:1px solid var(--cel-line);width:fit-content;margin-inline:auto}
.hero h1{font-size:clamp(62px,8vw,106px);line-height:1.06;letter-spacing:-.025em}
.hero h1 .amp{font-size:30px;margin-block:8px}
.hero .msg{font-size:22px;line-height:1.6;margin-top:28px;color:var(--silver)}
.hero .in-w>p.tn:last-of-type{margin-top:20px!important;font-size:11px;letter-spacing:.24em}
.phases{gap:13px}
.phases i{width:9px;height:9px;box-shadow:inset var(--x) 0 0 0 var(--bg)}
.story-section .in-w{max-width:1040px}
.story-editorial{position:relative}
.story-copy{max-width:530px;margin-inline:auto}
.story-copy>p:last-child{max-width:48ch;margin:22px auto 0}
.story-copy::before{content:"";display:block;width:1px;height:52px;background:linear-gradient(transparent,var(--moon));margin:0 auto 26px}
.planets{height:470px;max-width:840px;margin-block:48px 0}
.planets svg{opacity:.5;inset:12% 4%;width:92%;height:80%}
.planets .p{border-radius:150px 150px 3px 3px;border:5px solid var(--bg);box-shadow:0 0 0 1px var(--cel-line),0 22px 50px #0004;transition:transform .4s}
.planets .p:hover{transform:translateY(-5px)}
.planets .p:nth-of-type(1){width:37%;height:380px;aspect-ratio:auto;left:1%;top:20px}
.planets .p:nth-of-type(2){width:27%;height:280px;aspect-ratio:auto;left:43%;top:0}
.planets .p:nth-of-type(3){width:25%;height:240px;aspect-ratio:auto;right:0;top:200px}
.gallery-link{font-size:11px;letter-spacing:.15em;border-color:var(--cel-line);margin-top:20px}
.countdown-section{border-block:1px solid var(--cel-line);background:linear-gradient(130deg,#ffffff04,transparent 60%)}
.countdown-section .in-w{max-width:860px}
.moons{max-width:660px;margin-top:40px;gap:0}
.moons>div{gap:16px;position:relative;padding-inline:8px}
.moons>div+div{border-left:1px solid var(--cel-line)}
.moons .moonball{background:none;width:auto;min-width:0;aspect-ratio:auto;height:auto;box-shadow:none;isolation:auto}
.moons b{font:400 clamp(42px,7vw,68px)/1 Italiana;color:var(--moon);text-shadow:none}
.moons span{font-size:10px;letter-spacing:.2em}
.tl{padding-left:48px;margin-top:48px}
.tl>div{padding:0 0 36px 20px}
.tl>div:last-child{padding-bottom:0}
.tl h3{font-size:clamp(30px,4vw,38px)}
.tl>div::before{left:-41px;width:12px;height:12px;filter:none;top:4px}
.tl svg.line{left:12px;opacity:.65}
.gc{margin:60px auto 0;padding:36px 24px;border-inline:0;border-radius:0;border-color:var(--cel-line);background:none;box-shadow:none;max-width:620px}
#viaje{background:linear-gradient(180deg,transparent,#ffffff03,transparent)}
.gcs{column-gap:56px;row-gap:0;margin-top:48px}
.gcs>div{border:0;border-top:1px solid var(--cel-line);border-radius:0;background:none;box-shadow:none;padding:30px 0}
.gcs h3{line-height:1.2;margin-block:16px}
.gcs>div:first-child{position:relative;padding:36px;border:1px solid var(--cel-line);background:linear-gradient(140deg,#ffffff08,transparent);align-items:flex-start}
.gcs>div:first-child::after{content:"";position:absolute;inset:8px;border:1px solid var(--cel-faint);pointer-events:none}
.gcs>div:first-child svg{width:38px;height:38px}
.quote-section{isolation:isolate;border-block:1px solid var(--cel-faint);padding-block:110px}
.quote-section .in-w{position:relative}
.quote-moon{position:absolute;width:180px;height:180px;right:-100px;top:-35px;opacity:.15;z-index:-1;filter:brightness(.8)}
.quote-section blockquote{font-size:clamp(34px,4.5vw,50px);line-height:1.4;max-width:720px;margin-block:30px}
.quote-section .phases{opacity:.7}
#faq .in-w{max-width:700px}
#faq h2{margin-bottom:32px}
.faq summary{padding-block:22px;font-size:21px}
.faq details{border-color:var(--cel-line)}
#rsvp{padding-top:40px}
#rsvp .glass{position:relative;padding:48px 40px!important;border-color:var(--cel-line);border-radius:2px;background:linear-gradient(130deg,#ffffff08,#ffffff02);box-shadow:0 24px 90px #0002}
#rsvp .glass::before{content:"";position:absolute;inset:8px;border:1px solid var(--cel-faint);pointer-events:none}
#rsvp h2{line-height:1.15;overflow-wrap:anywhere}
#rsvp .demo-note{max-width:36ch;margin:20px auto;color:var(--silver);font-size:11px}
#rsSave{width:100%;margin-top:30px!important;background:var(--moon);color:var(--bg);border-color:var(--moon)}
#rsSave::before,#rsSave::after{background:currentColor}
textarea{border-radius:2px;background:#0000000a;border-color:var(--cel-line)}
.person{border-color:var(--cel-faint)}
footer{overflow:clip;padding-block:70px 130px}
footer .moonball{width:100px!important;height:100px!important;margin-bottom:30px!important}
.footer-horizon{position:absolute;left:50%;top:120px;width:min(1200px,150vw);height:500px;border:1px solid var(--cel-line);border-radius:50%;transform:translateX(-50%);pointer-events:none}
footer>.tn{max-width:500px;margin-inline:auto;line-height:2}
footer>p{position:relative}
@media(min-width:1000px){.hero .in-w{grid-template-columns:1.05fr 1fr;gap:0 68px;max-width:1160px}.hero .orbit{max-width:510px;width:100%;grid-row:1/8;margin:0}.hero h1{font-size:clamp(80px,7.5vw,110px)}.hero .in-w>.phases{margin:0 0 20px}.hero .msg{font-size:21px}.gcs{grid-template-columns:1fr 1fr}.gcs>div:first-child{margin-right:10px}.gcs>div:nth-child(2){padding-top:4px;border-top:0}}
@media(max-width:600px){.hero{padding-top:70px}.orbit .pic{inset:42px}.hero .orbit{margin-block:30px}.hero .msg{font-size:20px}.story-copy::before{height:36px}.planets{height:350px;margin-top:34px}.planets .p:nth-of-type(1){width:48%;height:260px;top:0;left:1%}.planets .p:nth-of-type(2){width:39%;height:190px;left:auto;right:0;top:20px}.planets .p:nth-of-type(3){width:35%;height:165px;top:185px;right:4%}.moons b{font-size:44px}.moons span{font-size:9px;letter-spacing:.1em}.quote-section{padding-block:80px}.quote-moon{right:-65px;width:150px;height:150px;top:-30px}.gcs>div:first-child{padding:30px 25px;margin-bottom:24px}.tl{padding-left:35px}.tl>div{padding-left:12px}.tl>div::before{left:-29px}.tl svg.line{left:11px}#rsvp .glass{padding:38px 22px!important}.person>span{flex-basis:100%}.person>div{width:100%}.person button{flex:1}.btn{padding-inline:20px}.opening>p.tn{letter-spacing:.22em}}
@media(max-height:650px){.opening-dial{width:min(65vh,300px)}.opening .ask{top:calc(50% + min(32.5vh,150px) + 10px)}.ask .it{font-size:20px!important}.ask .tn{margin-top:8px!important}}

/* Keep the revealed lunar composition balanced in the available viewport. */
.constellation{top:calc(132px + var(--reveal-offset,0px))}
.told{top:calc(344px + var(--reveal-offset,0px))}
.lit::after{height:var(--reveal-bottom,600px)}
@media(max-height:650px){.constellation{top:calc(112px + var(--reveal-offset,0px))}.told{top:calc(280px + var(--reveal-offset,0px))}}

/* Opción «sin fotos» (editor: photosOn; demo: botón Sin fotos o ?fotos=no): html.lz-no-photos.
   La luna llena ocupa el centro de la portada (sin la luna pequeña en órbita) y se ocultan los planetas con fotos de la historia. */
html:not(.lz-no-photos) .np-only,.lz-no-photos .ph-only{display:none!important}
.lz-no-photos .orbital-moon,.lz-no-photos .planets,.lz-no-photos .gallery-link{display:none}
