:root{--green:#102D2A;--sage:#819A78;--ivory:#F5EBDC;--terra:#BE6046;--orange:#EAA044;--gold:#C3A572;--ink:#222421;color:var(--ink);background:var(--green);font-family:'DM Sans',sans-serif;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--orange);outline-offset:5px}button{border-radius:0}img{display:block;width:100%;object-fit:cover}h1,h2,h3,p,figure{margin:0}p{font-size:15px;line-height:1.9}h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400}h2{font-size:clamp(42px,5.2vw,74px);line-height:1.04;letter-spacing:-.035em}h2 em{font-weight:400}p+p{margin-top:20px}.eyebrow{font-size:10px;letter-spacing:.21em;line-height:1.7;font-weight:600}.section-pad{padding:110px max(7vw,24px)}.paper{background:var(--ivory);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%2381755d' opacity='.055' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.skip{position:absolute;top:10px;left:10px;z-index:50;background:var(--ivory);padding:12px;transform:translateY(-150%)}.skip:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cover{position:relative;min-height:850px;height:100svh;max-height:1100px;background:var(--green);color:var(--ivory);isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:center}.cover:after{content:'';position:absolute;inset:20px;border:1px solid #c3a57245;pointer-events:none;z-index:-1}.cover-top{position:absolute;top:40px;left:4%;right:4%;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.2em;color:var(--gold)}.bunting{position:absolute;top:54px;width:80%;max-width:1000px;opacity:.85}.arch{position:absolute;top:145px;bottom:90px;width:430px;border:1px solid var(--gold);border-radius:240px 240px 0 0;padding:12px;background:#bd955839;overflow:hidden;perspective:900px;z-index:-1;box-shadow:0 0 0 8px var(--green),0 0 0 9px #c3a57244}.door{position:absolute;top:0;bottom:0;width:50%;background:#173834;transition:transform 1.35s ease,opacity 1.35s;z-index:2;backface-visibility:hidden}.door:after{content:'';position:absolute;inset:20px 12px;border:1px solid #c3a57240;border-radius:220px 220px 0 0}.door.left{left:0;border-right:1px solid #c3a57245;transform-origin:left}.door.right{right:0;transform-origin:right}.arch-light{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 80%,#eaa04490,transparent 75%);opacity:0;transition:opacity 1s}.opened .door.left{transform:rotateY(-95deg);opacity:.2}.opened .door.right{transform:rotateY(95deg);opacity:.2}.opened .arch-light{opacity:1}.cover-content{position:relative;text-align:center;padding-top:45px;max-width:90%;transition:transform .8s}.cover-content .eyebrow{font-size:9px;letter-spacing:.24em;margin-bottom:24px}h1{font-size:clamp(62px,6.5vw,92px);line-height:1.03;letter-spacing:-.04em}h1 span{font-style:italic;color:var(--gold)}.cover-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:40px;line-height:1.15;margin-top:20px}.cover-name em{font-size:28px;display:block;margin-top:4px}.fine-line{height:1px;width:60px;background:var(--gold);margin:26px auto}.cover-quote{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:22px;line-height:1.45;color:#e4d5bd}.discover{color:var(--ivory);border:1px solid #c3a57299;background:#102d2a80;padding:17px 24px;font-size:12px;letter-spacing:.03em;margin-top:28px;transition:background .2s}.discover span{margin-left:20px;color:var(--orange)}.discover:hover{background:#2e4c3c}.cover-bottom{position:absolute;bottom:40px;display:flex;align-items:center;gap:30px;color:var(--gold);font-size:9px;letter-spacing:.19em}.small-flower{font-size:22px}.botanical{position:absolute;width:340px;bottom:65px;z-index:-1;pointer-events:none}.cover-left{left:calc(50% - 570px);transform:rotate(-9deg)}.cover-right{right:calc(50% - 570px);transform:scaleX(-1) rotate(-4deg);bottom:140px;width:310px}.stars{position:absolute;inset:0;z-index:-1;color:var(--gold)}.stars span{position:absolute;font-size:22px}.stars span:nth-child(1){top:30%;left:18%}.stars span:nth-child(2){top:23%;right:21%;font-size:12px}.stars span:nth-child(3){top:58%;right:12%}.stars span:nth-child(4){top:66%;left:10%;font-size:12px}.petal{position:absolute;left:50%;top:60%;width:8px;height:16px;background:var(--orange);border-radius:90% 0 90% 0;animation:petal 1.7s ease-out forwards;pointer-events:none}@keyframes petal{to{transform:translate(var(--x),var(--y)) rotate(220deg);opacity:0}}.intro{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center;max-width:none}.intro-photo{max-width:500px;margin:0 auto;width:100%;position:relative}.intro-photo img{aspect-ratio:4/5;object-position:50% 40%;border-radius:230px 230px 0 0}.intro-photo:before{content:'';position:absolute;inset:-15px 15px 45px -15px;border:1px solid var(--gold);border-radius:240px 240px 0 0;pointer-events:none}.intro-photo figcaption{font-size:9px;letter-spacing:.08em;margin-top:20px;color:#526453;text-align:center}.intro-copy{max-width:440px;position:relative}.intro-copy h2{margin:24px 0 32px}.intro-copy>p:not(.eyebrow):not(.signature){color:#4b5147}.signature{font-family:'Allura',cursive;font-size:41px;line-height:1.4;margin-top:30px!important;color:var(--green)}.inline-flower{width:48px;position:absolute;right:0;bottom:0}.costume{position:relative;isolation:isolate;overflow:hidden;text-align:center;background:#9e4937;color:var(--ivory);padding-top:90px;padding-bottom:85px}.poster-border{position:absolute;inset:23px;border:1px solid #f5ebdc66;z-index:-1}.poster-border:before{content:'';position:absolute;inset:6px;border:1px solid #f5ebdc33}.costume h2{font-size:clamp(55px,8.5vw,120px);line-height:.94;letter-spacing:-.035em;margin:35px 0 32px}.costume h2 em{font-style:normal}.mandatory{display:inline-block;font-size:clamp(18px,2.8vw,30px);letter-spacing:.09em;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);padding:13px 6px;font-weight:500}.costume-copy{max-width:480px;margin:30px auto 0}.costume-copy h3{font-size:28px;line-height:1.15;margin-bottom:16px;font-style:italic}.costume-copy p{font-size:13px}.mask{position:absolute;width:200px;color:var(--gold);top:43%;z-index:-1}.mask-one{left:3%;transform:rotate(-20deg)}.mask-two{right:3%;transform:rotate(20deg)}.poster-flower{width:50px;margin:30px auto 0}.date-section{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.date-intro h2{margin-top:30px}.date-art{text-align:center;max-width:420px}.date-number{font-family:'Cormorant Garamond',Georgia,serif;font-size:235px;line-height:.9;display:block;color:var(--green);letter-spacing:-.06em;font-weight:400}.month{font-size:20px;letter-spacing:.18em;border-bottom:1px solid #c3a57288;padding:10px 0 24px}.month span{display:block;font-family:'Cormorant Garamond',Georgia,serif;font-size:32px;letter-spacing:.1em;margin-top:8px}.time{display:flex;align-items:center;justify-content:center;gap:25px;margin-top:24px}.time span{font-size:9px;letter-spacing:.12em}.time strong{font-family:'Cormorant Garamond',Georgia,serif;font-size:32px;font-weight:500}.countdown-section{padding:70px 24px 80px;text-align:center;background:#dce0cc;color:var(--green)}.countdown-section h2{font-size:42px;margin-top:20px}.countdown{display:flex;max-width:680px;justify-content:space-around;margin:40px auto 0;gap:24px}.countdown>div{flex:1;position:relative}.countdown>div+div:before{content:'';position:absolute;left:-12px;height:55px;top:18px;border-left:1px solid #819a7860}.countdown strong{font-family:'Cormorant Garamond',Georgia,serif;font-size:80px;font-weight:400;line-height:1;font-variant-numeric:tabular-nums}.countdown span{display:block;font-size:9px;letter-spacing:.17em;margin-top:18px}#event-message{font-family:'Cormorant Garamond',Georgia,serif;font-size:45px;margin-top:32px}.location{display:flex;justify-content:center;align-items:center;gap:10%;border-bottom:1px solid #c3a57255}.location-bouquet{width:280px;flex-shrink:0}.location-copy{max-width:450px}.location-copy h2{margin:20px 0 26px}.location-date{font-size:12px}.text-link{font-size:12px;letter-spacing:.12em;text-decoration:none;display:inline-flex;align-items:center;justify-content:space-between;gap:50px;border-bottom:1px solid var(--green);padding:15px 0;margin-top:20px}.text-link:hover{color:#995039}.text-link>span[aria-hidden]{font-size:23px}.gallery-heading{text-align:center;max-width:650px;margin:auto}.gallery-heading h2{margin:20px 0 24px}.gallery-heading>p:last-child{max-width:450px;margin:auto;font-size:13px}.gallery{display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;align-items:start;margin-top:60px}.photo{padding:0;border:0;color:var(--green);background:none;text-align:left;overflow:hidden}.photo img{transition:transform .4s;object-fit:cover}.photo:hover img{transform:scale(1.025)}.photo>span{display:flex;justify-content:space-between;padding:12px 0;font-size:10px;letter-spacing:.1em}.photo-tall img{aspect-ratio:.53}.photo-middle{margin-top:100px}.photo-middle img{aspect-ratio:.77}.photo-last{margin-top:40px}.photo-last img{aspect-ratio:.53}.gallery-hint{text-align:center;font-size:10px;margin-top:32px;color:#59644f}.closing{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr 1.2fr;align-items:center;gap:10%;color:var(--ivory)}.closing-portrait{width:100%;max-width:340px;justify-self:center}.closing-portrait img{aspect-ratio:.66;border-radius:200px 200px 0 0;object-position:50% 45%}.closing-copy{z-index:1;max-width:570px}.closing-copy h2{font-size:42px;line-height:1.15;margin:24px 0}.closing-copy>p:not(.eyebrow):not(.signature){font-size:13px;max-width:380px;color:#d6d8c7}.closing-copy .see-you{font-family:'Cormorant Garamond',Georgia,serif;font-size:28px!important}.closing-copy .signature{color:var(--gold);font-size:64px;margin-top:0!important}.closing-flower{position:absolute;right:-100px;bottom:-90px;width:270px;opacity:.6;pointer-events:none}footer{background:var(--green);color:var(--gold);padding:28px 20px 90px;text-align:center;font-size:9px;letter-spacing:.17em;border-top:1px solid #c3a57233}.music-controls{position:fixed;bottom:18px;right:18px;z-index:20;background:var(--green);border:1px solid var(--gold);color:var(--ivory);padding:5px 12px;align-items:center;gap:10px;box-shadow:0 3px 15px #0002}.music-controls:not([hidden]){display:flex}.music-controls button{display:flex;align-items:center;gap:8px;background:none;color:inherit;border:0;min-height:38px;font-size:11px}.music-controls input{width:65px;accent-color:var(--gold)}dialog{border:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;padding:65px 55px 45px;background:#091b19f5;color:var(--ivory);overflow:hidden}dialog::backdrop{background:#091b19}dialog[open]{display:flex;align-items:center;justify-content:center}dialog img{height:100%;width:100%;object-fit:contain}dialog button{background:#102d2abf;color:var(--ivory);border:1px solid #c3a57288;min-width:44px;min-height:44px;position:absolute}.close{top:14px;right:20px;padding:0 15px}.close span{font-size:20px;margin-left:12px}.previous{left:8px;top:50%;font-size:24px}.next{right:8px;top:50%;font-size:24px}#photo-counter{position:absolute;bottom:10px;font-size:11px;letter-spacing:.15em}.reveal{transition:opacity .7s ease,transform .7s ease}.motion .reveal.pending{opacity:0;transform:translateY(24px)}
@media(min-width:1500px){.section-pad{padding-left:max(10vw,calc((100vw - 1240px)/2));padding-right:max(10vw,calc((100vw - 1240px)/2))}}
@media(max-width:900px){.mask{width:130px;top:26%}.mask-one{left:1%}.mask-two{right:1%}.cover-left{left:-90px;width:280px;bottom:50px}.cover-right{right:-90px;width:260px;bottom:135px}.intro{gap:8%}.section-pad{padding-top:85px;padding-bottom:85px}.intro-copy p{font-size:13px}.gallery{gap:18px}.closing-copy h2{font-size:36px}.location-bouquet{width:220px}}
@media(max-width:600px){.cover{min-height:760px;max-height:900px}.cover:after{inset:12px}.cover-top{top:29px;justify-content:center;font-size:8px;letter-spacing:.18em}.cover-top span:last-child{display:none}.bunting{top:55px;width:140%;max-width:none}.arch{top:155px;bottom:91px;width:calc(100% - 86px)}.cover-content{padding-top:55px;max-width:92%}.cover-content .eyebrow{font-size:8px;letter-spacing:.15em;margin-bottom:22px}h1{font-size:60px}.cover-name{font-size:33px;margin-top:18px}.cover-name em{font-size:25px}.cover-quote{font-size:21px}.fine-line{margin:24px auto}.discover{font-size:11px;padding:16px 17px;background:#102d2a}.discover span{margin-left:12px}.cover-left{width:185px;left:-85px;bottom:60px}.cover-right{width:175px;right:-90px;bottom:290px}.cover-bottom{bottom:34px;gap:15px;font-size:7px;letter-spacing:.12em}.stars span:nth-child(1){left:8%;top:23%}.stars span:nth-child(2){right:11%;top:18%}.section-pad{padding:70px 27px}.intro{grid-template-columns:1fr;gap:48px}.intro-photo{width:85%;max-width:330px}.intro-photo img{aspect-ratio:.8}.intro-copy{padding:0 8px}.intro-copy h2{font-size:49px;margin:18px 0 25px}.intro-copy p{font-size:14px}.signature{font-size:37px}.inline-flower{width:36px;bottom:-18px}.costume{padding:65px 28px}.poster-border{inset:12px}.costume .eyebrow{font-size:8px;letter-spacing:.12em}.costume h2{font-size:clamp(49px,13vw,70px);margin-top:80px;letter-spacing:-.04em}.mandatory{font-size:18px;letter-spacing:.06em;width:100%}.mask{width:93px;top:85px}.mask-one{left:16%}.mask-two{right:16%}.costume-copy h3{font-size:26px}.costume-copy p{font-size:13px}.poster-flower{width:42px}.date-section{grid-template-columns:1fr;gap:40px;text-align:center}.date-intro h2{font-size:41px;margin-top:20px}.date-art{width:100%;max-width:300px;margin:auto}.date-number{font-size:205px}.month{font-size:18px}.countdown-section{padding:55px 20px 60px}.countdown-section>.eyebrow{font-size:8px}.countdown-section h2{font-size:35px}.countdown-section h2 em{display:block}.countdown{gap:12px;margin-top:32px}.countdown strong{font-size:55px}.countdown span{font-size:8px;letter-spacing:.1em;margin-top:12px}.countdown>div+div:before{height:36px;top:9px;left:-6px}.location{position:relative;display:block}.location-bouquet{width:85px;height:110px;position:absolute;right:8px;top:12px;opacity:.75}.location-copy h2{font-size:44px}.location-copy p{font-size:14px}.location-copy .location-date{font-size:12px}.gallery-section{padding-top:60px}.gallery-heading h2{font-size:40px}.gallery{grid-template-columns:1fr 1fr;gap:16px;margin-top:35px}.photo-tall{grid-row:span 2}.photo-tall img{aspect-ratio:.46}.photo-middle{margin-top:25px}.photo-middle img{aspect-ratio:.77}.photo-last{margin-top:0}.photo-last img{aspect-ratio:.65}.photo>span{padding:8px 0}.gallery-hint{font-size:9px}.closing{grid-template-columns:1fr;gap:40px;text-align:center}.closing-portrait{max-width:230px}.closing-portrait img{aspect-ratio:.8;object-position:50% 40%}.closing-copy h2{font-size:34px}.closing-copy>p:not(.eyebrow):not(.signature){margin-left:auto;margin-right:auto}.closing-copy .eyebrow{font-size:8px}.closing-flower{width:180px;right:-70px;bottom:-30px;opacity:.4}footer{font-size:8px;padding:25px 18px 80px}.music-controls{bottom:12px;right:12px}.music-controls input{width:50px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.motion .reveal.pending{opacity:1;transform:none}.petal{display:none}}

/* Galería editorial: reglas limitadas a las tres fotografías. */
.gallery-section .gallery {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(16px, 2.6vw, 36px);
  max-width: 1100px;
  margin: 54px auto 0;
}
.gallery-section .gallery .photo {
  min-width: 0;
  width: 100%;
  margin: 0;
  grid-row: auto;
  overflow: visible;
}
.gallery-section .gallery .photo img {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
  display: block;
  transform: none;
  outline: 1px solid #c3a57255;
  outline-offset: 5px;
  transition: outline-color .3s ease;
}
.gallery-section .gallery .photo > span {
  margin-top: 13px;
  padding: 10px 0 0;
  border-top: 1px solid #c3a57266;
}
.gallery-section .gallery .photo:focus-visible img {
  outline-color: var(--green);
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .gallery-section .gallery .photo:hover img {
    transform: none;
    outline-color: var(--green);
  }
}
@media (max-width: 600px) {
  .gallery-section .gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    column-gap: 20px;
    row-gap: 26px;
    margin-top: 36px;
    max-width: 390px;
  }
  .gallery-section .gallery .photo-middle {
    grid-column: 1 / -1;
    grid-row: 1;
    width: 88%;
    justify-self: center;
  }
  .gallery-section .gallery .photo-tall {
    grid-column: 1;
    grid-row: 2;
  }
  .gallery-section .gallery .photo-last {
    grid-column: 2;
    grid-row: 2;
  }
  .gallery-section .gallery .photo > span {
    margin-top: 10px;
    padding-top: 8px;
  }
}
