:root{--bg:#f7f1e9;--brown:#97765f;--gold:#b69a7a;--ink:#65584d}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Montserrat,sans-serif;line-height:1.75}.hero{min-height:94svh;display:grid;place-items:center;text-align:center;padding:42px 20px;background:radial-gradient(ellipse at 20% 10%,#fff9f1,transparent 55%),linear-gradient(155deg,#f4e9de,#fffaf4 50%,#ead8c9);position:relative;overflow:hidden}.hero:before,.hero:after{content:'❦';position:absolute;font-size:clamp(100px,22vw,300px);color:#c9b09b45;line-height:1}.hero:before{top:-35px;left:-30px;transform:rotate(-30deg)}.hero:after{bottom:-65px;right:-35px;transform:rotate(145deg)}.hero-inner{position:relative;z-index:1}.eyebrow{text-transform:uppercase;letter-spacing:.3em;font-size:.75rem;color:var(--brown)}.script{font-family:'Great Vibes',cursive;font-size:clamp(5rem,16vw,9rem);font-weight:400;line-height:1.15;margin:20px 0;color:#a17e66}.line{width:90px;height:1px;background:var(--gold);margin:25px auto}.subtitle{font-family:'Libre Baskerville',serif;font-size:clamp(1rem,2vw,1.35rem)}.btn{display:inline-block;border:1px solid var(--brown);background:var(--brown);color:white;padding:13px 24px;text-decoration:none;border-radius:40px;font:600 .78rem Montserrat;letter-spacing:.07em;cursor:pointer;transition:.2s}.btn:hover{background:#785c49}.btn.outline{background:transparent;color:var(--brown)}section{padding:80px 20px;text-align:center}.container{max-width:920px;margin:auto}.section-title{font-family:'Libre Baskerville',serif;font-size:clamp(1.7rem,4vw,2.5rem);font-weight:400;color:#8b6c57}.script-small{font-family:'Great Vibes',cursive;font-size:3rem;color:#ae8c73;margin:0}.video-wrap{max-width:560px;margin:35px auto 0;padding:12px;background:#fff;box-shadow:0 15px 50px #5c403024;border:1px solid #e9d8c9;border-radius:12px}.video-wrap video{display:block;width:100%;border-radius:6px;background:#e9dcd0}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:38px 0}.card{padding:35px 25px;background:#fffaf5;border:1px solid #e8d9cb;border-radius:12px;box-shadow:0 10px 30px #6e4d2b0c}.card .symbol{font-size:2rem;color:var(--gold)}.card h3{font-family:'Libre Baskerville',serif;color:#8b6c57;font-weight:400}.card p{margin:8px 0}.muted{color:#988475;font-size:.88rem}.rsvp{background:#eee0d2}.form{max-width:520px;margin:25px auto;text-align:left;display:grid;gap:14px}label{display:block;font-size:.8rem;font-weight:600;margin-bottom:5px}input,select{width:100%;padding:12px;border:1px solid #d9c4b1;border-radius:8px;background:#fffdf9;color:#55483f;font:inherit}.form button{width:100%;margin-top:8px}.admin{background:#fffbf6}.admin details{max-width:650px;margin:auto;text-align:left;background:white;border:1px solid #e5d7c8;border-radius:12px;padding:22px}.admin summary{cursor:pointer;font-weight:600}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.admin .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.note{font-size:.8rem;color:#867464}footer{text-align:center;padding:35px;background:#e6d6c6;color:#7e6553}@media(max-width:650px){.cards,.admin-grid{grid-template-columns:1fr}section{padding:60px 18px}.hero{min-height:85svh}.script{font-size:6rem}.admin .actions .btn{width:100%;text-align:center}}.hero{padding:0;min-height:0;background:#f7f1e9;display:block}.hero:before,.hero:after{content:none}.hero-art{display:block;width:100%;height:auto}.hero-inner{padding:24px 20px 32px}.hero-inner .eyebrow{margin:0 0 18px}.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}@media(max-width:650px){.hero{min-height:0}.hero-inner{padding:20px 18px 26px}}
            /* Portada con imagen de fondo y textos HTML. */
            .hero{display:grid;grid-template-columns:1fr 1fr;position:relative;min-height:0;padding:0;isolation:isolate;background:#f8eee0}
            .hero:before,.hero:after{content:none}
            .hero-background{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover;object-position:center}
            .hero-inner{grid-column:2;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(40px,5vw,90px) clamp(24px,4vw,64px);min-height:61.7vw}
            .hero-kicker{font-family:'Libre Baskerville',serif;font-size:clamp(.8rem,1.8vw,1.5rem);letter-spacing:.35em;text-transform:uppercase;color:#986329;margin:0 0 8px}
            .hero .script{font-size:clamp(5rem,10.5vw,11rem);font-weight:400;line-height:1.15;margin:0;color:#a36d2d;max-width:100%;overflow-wrap:anywhere}
            .hero-divider{display:flex;align-items:center;gap:12px;width:min(75%,300px);color:#b4884f;font-size:1.4rem;margin:14px auto 24px}
            .hero-divider:before,.hero-divider:after{content:'';height:1px;flex:1;background:linear-gradient(90deg,transparent,#b4884f)}
            .hero-divider:after{transform:rotate(180deg)}
            .hero-message{font-family:'Libre Baskerville',serif;font-size:clamp(1rem,1.6vw,1.5rem);line-height:1.8;color:#65472e;max-width:32em;margin:0;text-wrap:pretty}
            .hero-message p{margin:0 0 12px}
            .hero-inner .hero-date{font-size:clamp(.65rem,.9vw,.85rem);letter-spacing:.18em;margin:0 0 16px;color:#97765f}
            .hero .btn{background:#a17b51;border-color:#a17b51}
            .hero .btn:hover{background:#805c37}
            @media(max-width:850px){.hero{display:block}.hero-background{position:relative;display:block;z-index:0;width:100%;height:auto;object-fit:contain}.hero-inner{min-height:0;padding:32px 22px 40px;background:radial-gradient(ellipse at top,#fff8ee,#f4e6d5)}.hero-kicker{font-size:.9rem}.hero .script{font-size:clamp(4.5rem,20vw,7rem)}.hero-message{font-size:clamp(1rem,3.8vw,1.25rem)}.hero-divider{margin:12px auto 20px}.hero-inner .hero-date{font-size:.72rem}}
            @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
            .photo-wrap{max-width:440px;margin:35px auto 0;padding:12px;background:#fff;box-shadow:0 15px 50px #5c403024;border:1px solid #e9d8c9;border-radius:12px}.photo-wrap img{display:block;width:100%;height:auto;border-radius:6px}
            .hero-heading{width:100%;text-align:center}
            @media(max-width:850px){.hero-heading{position:absolute;top:10vw;right:4%;width:45%;z-index:1}.hero-heading .hero-kicker{font-size:clamp(.55rem,1.8vw,1rem);letter-spacing:.25em;line-height:1.5;margin:0 0 6px}.hero-heading .script{font-size:clamp(2.5rem,12vw,7rem);line-height:1.15;margin:0}.hero-inner{padding-top:20px}}

            @media(max-width:850px){.hero-inner{position:static}.hero-heading{position:absolute;top:10vw;right:4%;width:45%;z-index:1}}

            @media(max-width:850px){.hero-heading{top:30.84vw;transform:translateY(-50%);right:3%;width:46%}.hero-heading .hero-kicker{font-size:clamp(.7rem,2.2vw,1.2rem);letter-spacing:.24em;margin-bottom:8px}.hero-heading .script{font-size:clamp(3rem,15vw,9rem);line-height:1.1}}

            .hero-heading .hero-kicker{margin-bottom:20px}

            .hero-heading .hero-blessing{font-family:'Great Vibes',cursive;font-size:clamp(1.5rem,3.3vw,3.5rem);line-height:1.35;color:#a36d2d;margin:16px 0 0}
            @media(max-width:850px){.hero-heading .hero-blessing{font-size:clamp(1.1rem,4vw,2.2rem);margin-top:14px}}

            .hero-heading .hero-kicker{font-size:clamp(1rem,2.1vw,1.8rem)}
            .hero-heading .script{font-size:clamp(5.5rem,12vw,13rem)}
            .hero-heading .hero-blessing{font-size:clamp(1.8rem,4vw,4rem)}
            @media(max-width:850px){.hero-heading{right:2%;width:48%}.hero-heading .hero-kicker{font-size:clamp(.8rem,2.6vw,1.4rem)}.hero-heading .script{font-size:clamp(3.4rem,17vw,10.5rem);line-height:1.1}.hero-heading .hero-blessing{font-size:clamp(1.3rem,5.2vw,2.8rem);line-height:1.25}}

            #invitacion .hero-message{margin:0 auto;max-width:680px}
            #invitacion .hero-divider{margin:24px auto}
            @media(max-width:850px){.hero-inner{padding:0;background:transparent}}

            .hero-heading .hero-kicker{transform:translateY(-50px)}

            .celebration-cards{grid-template-columns:1fr;max-width:616px;margin:38px auto}

            .party-heading{font-size:4.5rem}

            .party-countdown{margin:24px auto 32px;text-align:center;color:#8b6c57}
            .countdown-intro{font-size:1.85rem;letter-spacing:.18em;text-transform:uppercase;margin:0}
            .countdown-value{margin:4px 0;font-family:'Libre Baskerville',serif;line-height:1.2;color:#a36d2d}
            #countdownDays{font-size:clamp(3.5rem,7vw,5.5rem);font-variant-numeric:tabular-nums}
            .countdown-unit{display:block;font-family:Montserrat,sans-serif;font-size:1.9rem;letter-spacing:.12em;margin-top:10px}
            .countdown-date{font-size:1.82rem;font-weight:700;line-height:1.7;margin:14px 0 0;padding:0 12px}

            .guest-name{text-align:center;font-family:'Libre Baskerville',serif;font-size:clamp(1.3rem,3vw,1.8rem);color:#8b6c57;margin:0 0 12px;overflow-wrap:anywhere}

            .attendance-options{border:0;margin:0;padding:0;min-width:0;display:grid;gap:10px}
            .attendance-options legend{font-size:.8rem;font-weight:600;padding:0;margin-bottom:10px}
            .attendance-option{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #d9c4b1;border-radius:8px;background:#fffdf9;font-size:.9rem;font-weight:400;margin:0;cursor:pointer;min-height:48px}
            .attendance-option input[type=radio]{width:20px;height:20px;flex:0 0 20px;margin:0;padding:0;accent-color:#97765f}
            .attendance-option:has(input:checked){border-color:#97765f;background:#f8eee3}
            .attendance-option:focus-within{outline:2px solid #97765f;outline-offset:3px}

            .attendance-options{grid-template-columns:repeat(2,minmax(0,1fr))}
            .attendance-option{min-width:0;gap:8px;padding:12px 10px}
            @media(max-width:380px){.attendance-option{font-size:.78rem;gap:6px;padding:12px 8px}}
            .distance-message{display:none;}
            .btn:disabled{opacity:.45;cursor:not-allowed}.btn:disabled:hover{background:var(--brown)}.confirmation-status{font-size:.85rem;text-align:center;margin:0}.confirmation-status:empty{display:none}

            .distance-message{max-width:680px;margin:24px auto 30px;font-size:clamp(.95rem,1.2vw,1.1rem);line-height:1.9;color:#7e6553;text-wrap:pretty}

            @media(max-width:850px){.hero-heading .hero-kicker{transform:none;margin-bottom:15px}}

            @media(max-width:850px){.party-heading{font-size:3rem}}
        
.family-names{max-width:680px;margin:30px auto;text-align:center;font-family:'Libre Baskerville',serif;font-size:clamp(1rem,1.6vw,1.35rem);line-height:1.9;color:#8b6c57}.family-names p{margin:8px 0}.family-names .family-label{font-family:'Great Vibes',cursive;font-size:4.3rem;line-height:1.3;color:#ae8c73;margin-bottom:12px}

.card .celebration-intro{font-family:'Great Vibes',cursive;font-size:2.5rem;line-height:1.3;margin:0 0 24px;color:#ae8c73}.card .venue-title{font-family:'Libre Baskerville',serif;font-size:2rem;font-weight:400;line-height:1.4;color:#8b6c57;margin:20px 0}

main > section#invitacion{padding:25px}main > section:nth-of-type(2),main > section.rsvp{padding:20px}

.rsvp > .container > .party-heading{padding-bottom:10px}

@media(max-width:850px){.family-names > p:not(.family-label){font-size:1.5rem}}

.party-countdown > .countdown-date{margin:0 0 24px}

.guest-counter-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0}
.guest-counter-label{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.guest-counter-label>span{font-size:1.6rem;font-weight:600;color:#65584d}
.guest-counter-label small{font-size:1rem;color:#988475}
.guest-counter-controls{display:flex;align-items:center;gap:12px}
.guest-counter-controls output{min-width:1.2em;text-align:center;font-size:1.4rem;font-weight:600;font-variant-numeric:tabular-nums}
.counter-button{display:flex;align-items:center;justify-content:center;width:48px;height:48px;flex:0 0 48px;border:1.5px solid #97765f;border-radius:50%;background:transparent;color:#65584d;font:400 2rem/1 Montserrat,sans-serif;cursor:pointer;padding:0}
.counter-button:disabled{opacity:.3;cursor:not-allowed}.counter-button:focus-visible{outline:2px solid #97765f;outline-offset:3px}.counter-button:hover:not(:disabled){background:#fffaf5}
.guest-limit-note{font-size:.8rem;color:#867464;margin:8px 0 0}
@media(max-width:380px){.guest-counter-row{gap:8px}.guest-counter-label>span{font-size:1.3rem}.guest-counter-label small{font-size:.85rem}.guest-counter-controls{gap:8px}.counter-button{width:44px;height:44px;flex-basis:44px}}

.guest-counter-row{padding:13px 0}
.guest-counter-label>span{font-size:calc(1.6rem - 5px)}
.guest-counter-label small{font-size:calc(1rem - 5px)}
.guest-counter-controls output{font-size:calc(1.4rem - 5px)}
.counter-button{width:43px;height:43px;flex-basis:43px;font-size:calc(2rem - 5px)}
@media(max-width:380px){.guest-counter-label>span{font-size:calc(1.3rem - 5px)}.guest-counter-label small{font-size:calc(.85rem - 5px)}.counter-button{width:39px;height:39px;flex-basis:39px}}

.invitation-not-found{min-height:100svh;display:grid;place-items:center;padding:32px 24px;text-align:center;background:radial-gradient(ellipse at top,#fffaf4,#f1e2d1);color:#8b6c57}
.invitation-not-found>div{max-width:540px}.not-found-code{font-family:'Libre Baskerville',serif;font-size:clamp(5rem,18vw,9rem);line-height:1;margin:0 0 24px;color:#b4884f}
.invitation-not-found h1{font-family:'Libre Baskerville',serif;font-size:clamp(1.5rem,5vw,2.2rem);line-height:1.4;font-weight:400;margin:0 0 20px}.invitation-not-found p:last-child{font-size:1rem;line-height:1.8;margin:0}

body.invitation-pending>header,body.invitation-pending>main,body.invitation-pending>footer{display:none}
.invitation-loading{min-height:100svh;display:grid;place-items:center;padding:24px;text-align:center;color:#8b6c57;background:#f7f1e9;font-family:'Libre Baskerville',serif}