:root{--paper:#f8f0e4;--ink:#553c2e;--accent:#a46e49;--soft:#eee0cd;--muted:#8d7361;--line:#a46e4944;--button-ink:#fff;--display:'Cormorant Garamond',Georgia,serif}

*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--paper);line-height:1.7;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}button{cursor:pointer}img{display:block;max-width:100%}::selection{background:var(--accent);color:var(--button-ink)}.container{width:min(1120px,calc(100% - 48px));margin:auto}.section{padding:110px 0;scroll-margin-top:85px}.eyebrow{display:block;font-size:10px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--accent)}.topbar{position:fixed;inset:0 0 auto;z-index:60;transition:background .25s,color .25s;border-bottom:1px solid transparent}.nav-inner{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.logo{text-decoration:none;font-family:Georgia,serif;font-size:27px;letter-spacing:-.04em}.top-nav{display:flex;gap:28px;align-items:center}.top-nav a{text-decoration:none;font-size:11px;font-weight:500;letter-spacing:.035em;position:relative}.top-nav a:after{content:'';position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:currentColor;transition:right .2s}.top-nav a:hover:after,.top-nav a:focus-visible:after{right:0}.menu-btn{display:none;border:0;background:none;color:inherit;font-size:24px;padding:8px}.page-full .topbar{color:#fff}.topbar.is-scrolled{background:var(--paper);color:var(--ink);border-color:var(--line);box-shadow:0 5px 30px #00000005}.hero{position:relative;isolation:isolate;overflow:hidden}.hero .hero-portrait{margin:0;overflow:hidden}.hero .hero-portrait img{width:100%;height:100%;object-fit:cover}.hero-inner{position:relative;z-index:2}.hero .eyebrow{margin-bottom:30px}.hero h1{font-family:var(--display);font-weight:400;font-size:clamp(4rem,7vw,7rem);line-height:1.03;letter-spacing:-.04em;max-width:850px;margin:0 auto 30px;overflow-wrap:anywhere}.hero .hero-phrase{font-size:14px;font-weight:400;max-width:440px;margin:0 auto 26px;opacity:.9}.hero-date{font-size:11px;letter-spacing:.09em;text-transform:uppercase;margin:0 0 32px}.hero-rule{display:block;width:54px;height:1px;background:currentColor;opacity:.5;margin:26px auto}.actions{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border:1px solid var(--accent);background:transparent;color:var(--accent);padding:13px 23px;text-decoration:none;line-height:1.35;font-size:11px;letter-spacing:.07em;font-weight:600;border-radius:3px;transition:background .2s,transform .2s}.btn:hover{transform:translateY(-2px)}.btn.primary{background:var(--accent);color:var(--button-ink)}.btn.ghost{background:transparent}.cover-full{min-height:100svh;display:grid;align-items:center;padding:145px 0 105px;text-align:center;color:white}.cover-full .hero-portrait{position:absolute;inset:0;z-index:-2}.cover-full .hero-portrait img{object-position:center 58%}.cover-full:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#060a1290,#080c1560 40%,#0b0b15b0)}.cover-full .hero .eyebrow{color:var(--accent)}.cover-full .eyebrow{color:#f5e5c4}.cover-full .btn.primary{background:#f5efe2;color:#242729;border-color:#f5efe2}.cover-full .btn.ghost{border-color:#ffffff80;color:white}.cover-full .hero-phrase{text-shadow:0 2px 12px #0008}.cover-full .countdown{border-color:#ffffff55}.cover-full .countdown strong{color:white}.cover-full .countdown span{color:#e8e4df}.cover-split{min-height:100svh;padding-top:76px;display:grid;grid-template-columns:1fr 1fr}.cover-split .hero-portrait{grid-column:2;grid-row:1;min-height:820px}.cover-split .hero-portrait img{object-position:center 60%}.cover-split .hero-inner{grid-column:1;grid-row:1;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;width:100%;padding:65px 48px}.cover-split h1{font-size:clamp(3.4rem,5.4vw,6rem)}.cover-split .hero-phrase{max-width:360px}.countdown{display:flex;align-items:start;justify-content:center;gap:0;max-width:460px;margin:48px auto 0;border-top:1px solid var(--line);padding-top:24px}.countdown div{min-width:90px;text-align:center;padding:0 18px}.countdown div+div{border-left:1px solid var(--line)}.countdown strong{display:block;font-family:var(--display);font-size:34px;line-height:1.2;font-weight:400;color:var(--ink);font-variant-numeric:tabular-nums}.countdown span{display:block;font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:5px}.cover-caption{position:absolute;bottom:24px;left:0;right:0;text-align:center;font-size:9px;letter-spacing:.24em;color:#eee;text-transform:uppercase}.section-heading{text-align:center;max-width:650px;margin:0 auto 50px}.section-heading h2,.event-copy h2,.agenda-card h2{font-family:var(--display);font-weight:400;font-size:clamp(2.7rem,4vw,4rem);line-height:1.15;letter-spacing:-.025em;margin:12px 0 24px}.section-heading p,.event-copy>p{font-size:13px;color:var(--muted)}.event-feature{display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:center}.event-photo{position:relative}.event-photo img{width:100%;height:550px;object-fit:cover;border-radius:4px}.event-photo:after{content:'';position:absolute;inset:16px -16px -16px 16px;border:1px solid var(--line);border-radius:4px;z-index:-1}.event-copy .event-facts{padding:24px 0;margin:26px 0;border-block:1px solid var(--line);font-size:12px;line-height:2;color:var(--ink)}.event-facts strong{font-size:14px;font-weight:500}.event-copy .btn{margin-top:4px}.quote-section{padding:75px 0;background:var(--soft);text-align:center}.quote{font-family:var(--display);font-weight:400;font-size:clamp(1.9rem,3.4vw,3rem);line-height:1.35;letter-spacing:-.02em;max-width:850px;margin:auto;font-style:italic}.quote-label{display:block;font-size:9px;letter-spacing:.22em;color:var(--muted);margin-top:25px;text-transform:uppercase}.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.gallery .gallery-item{padding:0;border:0;background:none;position:relative;overflow:hidden;border-radius:3px}.gallery img{width:100%;height:340px;object-fit:cover;transition:transform .6s}.gallery .gallery-item:nth-child(even){margin-top:36px}.gallery .gallery-item:hover img{transform:scale(1.04)}.gallery .gallery-caption{position:absolute;inset:auto 0 0;padding:28px 10px 12px;color:white;font-size:10px;background:linear-gradient(transparent,#0008);opacity:0;transition:opacity .2s}.gallery .gallery-item:hover .gallery-caption,.gallery .gallery-item:focus-visible .gallery-caption{opacity:1}.details-strip{border-block:1px solid var(--line);padding:25px 0;margin-top:55px;text-align:center;font-size:12px;color:var(--muted)}.gifts-section{background:var(--soft)}.gift-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:70px;align-items:center;max-width:900px;margin:auto}.gift-layout h2{font:400 clamp(2.7rem,4vw,4rem)/1.12 var(--display);letter-spacing:-.03em;margin:15px 0 25px}.gift-layout p{font-size:13px;color:var(--muted)}.gift-account{border:1px solid var(--line);padding:35px;border-radius:4px;background:var(--paper)}.gift-account small{font-size:9px;letter-spacing:.16em;color:var(--muted);display:block;margin-bottom:18px}.gift-account strong{display:block;font-size:16px;font-weight:500;overflow-wrap:anywhere;margin-bottom:24px}.copy-status{font-size:11px;min-height:18px;margin-top:14px;display:block}.rsvp-wrap{max-width:700px;margin:auto}.confirm-card{border:1px solid var(--line);border-radius:6px;background:var(--paper);padding:38px}.guest-summary{display:flex;align-items:center;gap:18px;padding-bottom:25px;margin-bottom:25px;border-bottom:1px solid var(--line)}.guest-summary small{font-size:9px;letter-spacing:.16em;color:var(--muted);display:block}.guest-summary strong{font-weight:500;font-size:18px}.guest-icon{font:32px Georgia,serif;color:var(--accent)}.simple-confirm-form label{display:block;font-size:11px;font-weight:500;margin:16px 0 8px}.simple-confirm-form input,.simple-confirm-form select,.simple-confirm-form textarea{width:100%;max-width:100%;padding:13px 14px;border:1px solid var(--line);color:var(--ink);background:var(--paper);border-radius:3px;font-size:13px;box-sizing:border-box}.simple-confirm-form input[readonly]{color:var(--muted);background:var(--soft)}.simple-confirm-form .btn{width:100%;margin-top:22px}.form-message{font-size:12px;line-height:1.7;padding-top:15px}.deadline-note{font-size:11px;color:var(--muted);text-align:center;margin:28px 0}.agenda-section{padding-top:0}.agenda-card{border-top:1px solid var(--line);padding:65px 24px 15px;text-align:center;max-width:900px;margin:auto}.agenda-card p{font-size:13px;color:var(--muted)}.agenda-card .btn{margin-top:20px}.footer{text-align:center;border-top:1px solid var(--line);padding:38px 24px;color:var(--muted);font-size:10px;letter-spacing:.04em}.footer a{text-decoration:none;color:var(--ink)}.footer strong{font-family:Georgia,serif;font-size:20px;font-weight:400;display:block;margin-bottom:8px}.gallery-dialog{width:min(950px,94vw);max-height:92svh;overflow:auto;padding:50px 20px 20px;background:#15151a;color:#fff;border:0;border-radius:8px}.gallery-dialog::backdrop{background:#000c}.gallery-dialog img{max-height:73svh;margin:auto;object-fit:contain}.gallery-dialog .close-gallery{position:absolute;right:15px;top:6px;background:transparent;border:0;color:white;font-size:32px;padding:5px 10px}.gallery-controls{display:flex;justify-content:center;align-items:center;gap:25px;margin-top:15px;font-size:12px}.gallery-controls button{border:1px solid #ffffff55;border-radius:3px;color:white;background:transparent;padding:8px 15px}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s,transform .7s}.reveal.visible{opacity:1;transform:none}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button:disabled{opacity:.5;cursor:default}.style-deco .hero-rule{width:110px}.style-deco .hero-inner:before,.style-deco .hero-inner:after{content:'';display:block;width:55px;height:1px;background:#d4b16f;margin:15px auto}.style-festival .hero h1{font-family:'DM Sans',Arial,sans-serif;font-size:clamp(4rem,7vw,6.5rem);font-weight:500;letter-spacing:-.06em}.style-editorial h1,.style-retro h1{font-style:italic}.style-pastel .event-photo img{border-radius:180px 180px 5px 5px}.style-tropical .event-photo img{border-radius:180px 180px 5px 5px}.style-varsity .eyebrow{letter-spacing:.2em}.style-tech{--display:'DM Sans',Arial,sans-serif}.style-tech .hero h1{font-weight:400;letter-spacing:-.05em}.style-tech .hero-phrase{font-weight:300}.style-crest .topbar .logo{font-style:italic}
@media(max-width:1000px){.cover-split .hero-inner{padding:65px 28px}.cover-split .hero-portrait{min-height:760px}.countdown div{min-width:66px;padding-inline:12px}.event-feature{gap:45px}.gallery img{height:290px}}
@media(max-width:760px){html{scroll-padding-top:72px}.container{width:calc(100% - 40px)}.nav-inner{height:66px}.logo{font-size:23px}.menu-btn{display:block}.top-nav{display:none;position:absolute;top:66px;left:0;right:0;flex-direction:column;gap:0;background:var(--paper);color:var(--ink);padding:12px 20px 22px;border-bottom:1px solid var(--line)}.top-nav.open{display:flex}.top-nav a{width:100%;padding:11px 8px;text-align:center;font-size:12px}.top-nav a:after{display:none}.cover-full{padding:150px 0 100px;min-height:100svh}.hero h1{font-size:clamp(3.1rem,13vw,4.8rem);margin-bottom:24px;max-width:95%}.hero .eyebrow{font-size:8px;letter-spacing:.23em;margin-bottom:26px}.hero .hero-phrase{font-size:12px;max-width:290px;margin-bottom:24px}.hero-date{font-size:9px;letter-spacing:.1em}.hero-rule{margin:22px auto}.btn{font-size:10px;padding:13px 17px;min-height:45px}.actions{gap:10px}.countdown{margin-top:34px;padding-top:20px}.countdown div{min-width:65px;padding:0 12px}.countdown strong{font-size:28px}.countdown span{font-size:7px;letter-spacing:.13em}.cover-split{display:flex;flex-direction:column;padding-top:66px;min-height:0}.cover-split .hero-portrait{width:100%;height:52svh;min-height:340px;max-height:540px}.cover-split .hero-portrait img{object-position:center 65%}.cover-split .hero-inner{padding:48px 22px 55px}.cover-split h1{font-size:clamp(3rem,13vw,4.3rem);max-width:95%}.cover-split .hero .eyebrow{margin-bottom:20px}.cover-caption{bottom:18px;font-size:8px}.cover-split .cover-caption{display:none}.section{padding:75px 0}.section-heading{margin-bottom:35px}.section-heading h2,.event-copy h2,.agenda-card h2,.gift-layout h2{font-size:2.7rem}.event-feature{grid-template-columns:1fr;gap:45px}.event-photo{max-width:440px;margin:auto;width:100%;padding-right:10px}.event-photo img{height:440px}.event-copy{text-align:center}.event-copy .eyebrow{margin-top:8px}.quote-section{padding:60px 0}.quote{font-size:1.9rem}.quote-label{font-size:8px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gallery img{height:240px}.gallery .gallery-item:nth-child(even){margin-top:0}.gallery .gallery-caption{opacity:1;font-size:8px}.details-strip{font-size:11px;margin-top:35px;padding:20px 10px}.gift-layout{grid-template-columns:1fr;gap:25px;text-align:center}.gift-account{text-align:left;padding:28px}.confirm-card{padding:26px 20px}.guest-summary strong{font-size:16px}.deadline-note{font-size:10px}.agenda-section{padding-top:0}.agenda-card{padding:48px 0 0}.footer{font-size:9px}.style-festival .hero h1{font-size:clamp(3rem,13vw,4.2rem)}}
@media(max-width:360px){.container{width:calc(100% - 30px)}.countdown div{min-width:59px;padding-inline:10px}.actions .btn{font-size:9px}.gallery img{height:210px}.hero h1{font-size:3rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.gallery img,.btn,.topbar{transition:none}}

/* Galería unificada con Rapunzel: tarjetas 4:3, monocromo y ampliación. */
#galeria .gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
#galeria .gallery .gallery-item{position:relative;display:block;width:100%;padding:0;border:0;overflow:hidden;border-radius:16px;aspect-ratio:4/3;cursor:pointer;box-shadow:0 8px 32px #0000003b;transition:transform .3s,box-shadow .3s}
#galeria .gallery .gallery-item:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 20px 48px #0000004d}
#galeria .gallery .gallery-item img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:filter .3s}
#galeria .gallery .gallery-item:hover img,#galeria .gallery .gallery-item:focus-visible img{filter:grayscale(0) brightness(1.1) saturate(1.15)}
#galeria .gallery-caption{position:absolute;inset:0;display:flex;align-items:flex-end;gap:6px;padding:16px;background:linear-gradient(to top,#000a,transparent 60%);opacity:0;transition:opacity .3s;color:#fff;font:600 .88rem system-ui,sans-serif}
#galeria .gallery .gallery-item:hover .gallery-caption,#galeria .gallery .gallery-item:focus-visible .gallery-caption{opacity:1}
#galeria .gallery-caption svg{width:16px;height:16px}
#galeria .gallery .gallery-item.slide{opacity:0;transform:translateX(90px) rotateY(14deg) scale(1.1);filter:blur(9px)}
#galeria .gallery .gallery-item.slide.slide-visible{animation:gallery-slide-in .65s cubic-bezier(.25,.46,.45,.94) both;animation-delay:var(--slide-delay,0ms)}
@keyframes gallery-slide-in{from{opacity:0;transform:translateX(90px) rotateY(14deg) scale(1.1);filter:blur(9px)}to{opacity:1;transform:none;filter:none}}
@media(max-width:620px){#galeria .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#galeria .gallery .gallery-item{border-radius:12px}}
@media(prefers-reduced-motion:reduce){#galeria .gallery .gallery-item.slide{opacity:1;filter:none;transform:none}#galeria .gallery .gallery-item.slide.slide-visible{animation:none}}
#galeria{overflow:hidden;overflow:clip}

#galeria .gallery-item{text-decoration:none}
