:root{--green:#11251a;--deep:#0a1b13;--gold:#b39056;--cream:#f7eedc;--ink:#342719}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:60px}body{margin:0;background:var(--green);color:var(--ink);font-family:Marcellus,Georgia,serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}img{display:block;max-width:100%}:focus-visible{outline:3px solid #d9b773;outline-offset:3px}.skip{position:fixed;z-index:60;top:-70px;left:12px;background:#fff;padding:12px}.skip:focus{top:12px}.header{position:fixed;z-index:50;top:0;left:0;right:0;min-height:60px;padding:7px clamp(18px,4vw,60px);display:flex;align-items:center;justify-content:space-between;color:#ead5a7;background:#0b1d15ed;border-bottom:1px solid #d8b77844;backdrop-filter:blur(10px)}.brand{text-decoration:none;font-size:21px;letter-spacing:.14em}.brand small{font-size:12px}.header nav{display:flex;gap:clamp(12px,1.7vw,27px)}.header nav a{text-decoration:none;font-size:12px}.header nav a:hover,.header nav a[aria-current]{color:#fff}.menu{display:none;background:none;border:0;color:inherit;width:44px;height:44px;padding:10px}.menu span{display:block;height:1px;background:currentColor;margin:6px 0}.panel{position:relative;isolation:isolate;display:flex;align-items:center;min-height:100svh;overflow:hidden}.inner{position:relative;z-index:2;width:min(100% - 40px,1080px);margin:auto;padding:105px 0}.narrow{max-width:670px}.eyebrow{text-transform:uppercase;letter-spacing:.28em;font:600 11px/1.7 'DM Sans',sans-serif;margin:0 0 17px}.script{font:400 clamp(70px,11vw,130px)/1 'Great Vibes','Brush Script MT',cursive;margin:0 0 15px}.paper{background:radial-gradient(circle at 50% 25%,#fff9ea,#f6ebd3 60%,#eadbb9)}.paper .eyebrow{color:#75552d}.paper .script{color:#573819}.dark{background:radial-gradient(circle at 50% 20%,#213b2a,var(--green) 64%,var(--deep));color:#fff8e9}.dark .eyebrow,.dark .script{color:#e8d2a0}.button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:11px 21px;border-radius:999px;text-decoration:none;text-align:center;text-transform:uppercase;letter-spacing:.11em;font:700 10px 'DM Sans',sans-serif;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.hero{background:linear-gradient(180deg,#0a180f94,#0a180f13 42%,#09170ea8 82%,#09170ee5),url('assets/portada.webp') center 52%/cover;color:#fff5dc;text-align:center;justify-content:center}.hero-content{z-index:2;width:min(100% - 32px,800px);min-height:100svh;padding:110px 0 105px;display:flex;flex-direction:column;align-items:center;justify-content:space-between}.hero .eyebrow{font-size:clamp(12px,1.4vw,17px);letter-spacing:.45em}.hero h1{font-size:clamp(58px,10vw,130px);font-weight:400;font-variant:small-caps;line-height:1.1;color:#f5ddb1;text-shadow:0 3px 20px #142017;margin:0}.rule{display:flex;align-items:center;gap:12px;width:200px;margin:8px auto;color:#ead4a6}.rule:before,.rule:after{content:"";height:1px;background:currentColor;flex:1}.hero-bottom p{text-transform:uppercase;letter-spacing:.22em;font:500 clamp(11px,1.3vw,15px) 'DM Sans',sans-serif;text-shadow:0 2px 10px #101710}.hero-bottom p+p{font-size:12px}.light{color:#292316;background:#f4e0b7;border:1px solid #d9b46b;box-shadow:0 5px 26px #e6bf7355;margin-top:10px;min-width:230px}.scroll{position:absolute;z-index:2;bottom:14px;left:50%;transform:translateX(-50%);text-decoration:none;text-transform:uppercase;letter-spacing:.2em;font:600 10px 'DM Sans',sans-serif}.scroll span{display:block;font:24px Georgia,serif}.invitation{text-align:center}.invitation .inner{padding-bottom:190px}.prose{max-width:555px;margin:40px auto 0;font-size:clamp(18px,2vw,22px);line-height:1.6}.prose p{margin:0 0 18px}.flourish{font-size:24px;color:var(--gold);margin:20px}.countdown{margin:0;color:#704d2a;font-size:19px}.countdown strong{font-weight:400;font-size:clamp(64px,10vw,100px);line-height:1}.note{font-size:12px;line-height:1.6;opacity:.8}.leaves{position:absolute;inset:0 0 auto;height:190px;opacity:.25;background:radial-gradient(ellipse at 2% 10%,#365134 0 6%,transparent 7%),radial-gradient(ellipse at 10% 24%,#365134 0 5%,transparent 6%),radial-gradient(ellipse at 89% 5%,#365134 0 5%,transparent 6%),radial-gradient(ellipse at 98% 23%,#365134 0 6%,transparent 7%)}.pond{position:absolute;bottom:0;left:0;right:0;height:145px;background:radial-gradient(ellipse at 50% 105%,#234533 0,#526c4b 48%,transparent 70%)}.pond:before,.pond:after{content:"";position:absolute;bottom:28px;left:calc(50% - 80px);width:130px;height:40px;border-radius:50%;background:#2c4b37;transform:rotate(-14deg)}.pond:after{left:calc(50% + 30px);transform:rotate(12deg)}.pond span{position:absolute;z-index:1;bottom:35px;left:calc(50% - 20px);font-size:56px;color:#fff0c9;text-shadow:0 0 18px #ffe4a6}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center}.location .script{margin-bottom:40px}.fact{display:flex;align-items:start;gap:20px;margin:20px 0;font-size:20px}.fact>span{font-size:34px;color:#e6cb91}.fact p{margin:5px 0;line-height:1.35}.fact small{display:inline-block;font-size:14px;color:#d4c6a6;margin-top:7px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:35px}.outline{border:1px solid #b9995e;border-radius:8px;background:transparent;color:#f0ddb5;padding:11px 14px}.outline:hover{background:#e9cc8c22}.hotel-images{height:570px;display:grid;grid-template-rows:2fr 1fr;gap:8px}.hotel-images img{width:100%;height:100%;object-fit:cover;border:1px solid #d8bc7f66}.program,.details,.gallery,.rsvp,.closing{text-align:center}.program .script{margin-bottom:40px}.timeline{max-width:650px;list-style:none;text-align:left;padding:0;margin:auto}.timeline li{display:grid;grid-template-columns:76px 1fr 1fr;gap:20px;align-items:center;min-height:100px;position:relative;font-size:19px}.timeline li:not(:last-child):before{content:"";position:absolute;left:37px;top:76px;bottom:-22px;width:1px;background:#ab8b55}.badge{display:grid;place-items:center;width:76px;height:76px;background:#ad8b52;border-radius:50%;color:#fff9e9;font-size:28px}.timeline time{color:#533b1e}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:45px}.cards article{background:#fff9e977;border:1px solid #e3d4b6;border-radius:9px;min-height:265px;padding:30px 15px;box-shadow:0 10px 25px #74552c15}.cards article>span{display:block;height:48px;color:#a9874f;font-size:34px}.cards article:nth-child(2)>span{font-size:19px}.cards h3{text-transform:uppercase;letter-spacing:.1em;font-size:13px;font-weight:400}.cards p{font-size:14px;line-height:1.5}.cards small{font-size:12px;color:#766348}.photos{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:900px;margin:42px auto 0}.photos button{padding:0;border:5px solid #fff8ea;aspect-ratio:3/4;overflow:hidden;box-shadow:0 10px 25px #60452226}.photos img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.photos button:hover img{transform:scale(1.05)}.rsvp form{display:grid;gap:17px;text-align:left;margin:28px auto 15px;padding:28px;background:#fff9ebae;border:1px solid #e7d5b6;border-radius:11px;box-shadow:0 15px 40px #8663321c}.rsvp label{display:grid;gap:7px;font-size:14px}.rsvp input,.rsvp select,.rsvp textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid #d9c7a8;border-radius:5px;background:#fffaf1;color:#2b2a21}.rsvp textarea{resize:vertical}.submit{border:0;border-radius:7px;background:#39492b;color:#fff9e9;width:100%;margin-top:5px}.submit:hover{background:#263923}.rsvp .note{max-width:540px;margin:15px auto}.contact{color:#35563c;text-underline-offset:4px;font-size:14px}.closing{min-height:75svh}.closing .script{font-size:clamp(85px,13vw,150px)}.closing .flower{font-size:70px;color:#dec083}.closing p:not(.eyebrow){font-size:19px}.closing .signature{font:44px 'Great Vibes',cursive!important;color:#e6ca8e}.closing a{text-transform:uppercase;text-decoration:none;border-bottom:1px solid #b39056;padding-bottom:7px;font:600 11px 'DM Sans',sans-serif;letter-spacing:.15em}dialog{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;padding:0;border:0;background:#07120ceF}dialog::backdrop{background:#061009e9}dialog img{width:calc(100% - 90px);height:calc(100% - 70px);object-fit:contain;margin:35px auto}dialog button{position:absolute;border:0;border-radius:50%;width:42px;height:42px;background:#f5ead5;color:#14241a;font-size:29px}.close{top:15px;right:15px}.prev{top:50%;left:15px}.next{top:50%;right:15px}.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s,transform .7s}.reveal.visible{opacity:1;transform:none}
@media(max-width:900px){.menu{display:block}.header nav{display:none;position:absolute;top:60px;left:0;right:0;max-height:calc(100dvh - 60px);overflow:auto;padding:10px 22px 22px;background:#10241af7;flex-direction:column;gap:0}.header nav.open{display:flex}.header nav a{padding:13px 4px;border-bottom:1px solid #ffffff22;font-size:14px}.location-grid{grid-template-columns:1fr;gap:25px}.hotel-images{height:340px}.cards{grid-template-columns:repeat(2,1fr)}.photos{grid-template-columns:repeat(2,1fr);max-width:570px}}
@media(max-width:600px){.inner{width:min(100% - 38px,500px);padding:87px 0}.hero{background-position:center 50%}.hero-content{padding:100px 0 78px}.hero h1{font-size:clamp(56px,13vw,80px)}.hero-bottom p{font-size:11px}.hero-bottom p+p{font-size:10px}.scroll{bottom:10px}.scroll span{font-size:18px}.invitation .inner{padding-bottom:175px}.prose{font-size:18px;margin-top:32px}.fact{font-size:18px;gap:13px}.fact>span{font-size:28px}.location .script{margin-bottom:30px}.hotel-images{height:300px}.actions .button{flex:1;min-width:145px}.timeline li{grid-template-columns:62px 1fr;gap:3px 16px;min-height:93px;font-size:17px}.badge{grid-row:span 2;width:62px;height:62px;font-size:24px}.timeline li:not(:last-child):before{left:30px;top:62px;bottom:-31px}.timeline time{align-self:end}.timeline li>span:last-child{align-self:start;font-size:15px}.cards{gap:9px}.cards article{min-height:245px;padding:22px 10px}.cards p{font-size:13px}.cards h3{font-size:12px}.photos{gap:6px}.photos button{border-width:3px}.rsvp form{padding:20px}.rsvp .script{font-size:clamp(65px,14vw,90px)}}
@media(max-height:670px) and (max-width:600px){.hero-content{padding-top:77px;padding-bottom:62px}.scroll{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.reveal{opacity:1;transform:none}}
