@import url('https://fonts.googleapis.com/css2?family=Italianno&family=Cormorant+Garamond:wght@400;500;600;700&family=Montserrat:wght@400;500;600;700&display=swap');
:root{--paper:#f5f1e9;--paper2:#ebe5d9;--ink:#393a34;--muted:#77796d;--olive:#777d62;--olive-dark:#596148;--gold:#b39d70;--line:#d9d0c1;--white:#fffdfa;--shadow:0 25px 70px rgba(47,43,34,.13);--serif:'Cormorant Garamond',Georgia,serif;--sans:'Montserrat',Arial,sans-serif;--script:'Italianno','Brush Script MT',cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.55}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}.container{width:min(1160px,calc(100% - 48px));margin-inline:auto}.eyebrow{font:600 10px/1.5 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--olive)}.script{font-family:var(--script);font-weight:400}.section{padding:112px 0;position:relative}.section-heading{text-align:center;max-width:700px;margin:0 auto 54px}.section-heading .script{font-size:clamp(48px,7vw,76px);line-height:.9;color:var(--olive);display:block;margin-bottom:8px}.section-heading h2{font-size:clamp(34px,4.2vw,54px);line-height:1.03;font-weight:500;margin:0}.section-heading p{color:var(--muted);font-size:19px;max-width:560px;margin:18px auto 0}.ornament{display:flex;align-items:center;justify-content:center;gap:13px;color:var(--gold);margin:24px auto}.ornament:before,.ornament:after{content:'';width:76px;height:1px;background:var(--line)}.ornament span{font-size:17px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--olive);background:var(--olive);color:#fffdf8;padding:14px 24px;border-radius:999px;font:600 10px var(--sans);letter-spacing:.13em;text-transform:uppercase;transition:.3s ease}.btn:hover{background:var(--olive-dark);border-color:var(--olive-dark);transform:translateY(-2px);box-shadow:0 10px 24px #4a523122}.btn-outline{background:transparent;color:var(--ink);border-color:#ffffff99}.btn-outline:hover{background:#ffffff20;color:white;border-color:white}.icon{width:21px;height:21px;display:inline-block;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
/* Navigation */
.site-header{position:absolute;top:0;left:0;right:0;z-index:20;padding:20px 0;color:white}.nav{display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font:400 37px/1 var(--script);letter-spacing:.03em;white-space:nowrap}.brand small{font:500 8px var(--sans);letter-spacing:.28em;text-transform:uppercase;display:block;text-align:center;margin-top:3px}.nav-links{display:flex;gap:30px;align-items:center}.nav-links a{font:500 9px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#fffdf0d9;transition:.25s}.nav-links a:hover{color:#fff}.nav-actions{display:flex;align-items:center;gap:12px}.lang-switch{border:1px solid #ffffff75;border-radius:999px;background:#17191435;color:white;padding:9px 13px;font:600 9px var(--sans);letter-spacing:.08em;backdrop-filter:blur(9px)}.lang-switch:hover{background:#ffffff25}.menu-toggle{display:none;border:1px solid #ffffff70;color:white;background:transparent;width:42px;height:42px;border-radius:50%;align-items:center;justify-content:center}
/* Hero */
.hero{min-height:780px;height:min(940px,100svh);position:relative;display:flex;align-items:center;color:#fff;background:#45453d;overflow:hidden}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,22,18,.72),rgba(25,26,22,.32) 58%,rgba(20,22,18,.12)),linear-gradient(0deg,rgba(22,24,20,.5),transparent 55%),url('album-1.webp') center 44%/cover;transform:scale(1.025)}.hero:after{content:'';position:absolute;inset:18px;border:1px solid #ffffff55;pointer-events:none}.hero-content{position:relative;z-index:2;width:min(900px,calc(100% - 48px));margin:80px auto 15px;text-align:center}.hero-kicker{font:500 10px var(--sans);letter-spacing:.35em;text-transform:uppercase;color:#f2e9d8}.hero-names{font:400 clamp(82px,13vw,158px)/.74 var(--script);margin:35px 0 22px;text-shadow:0 3px 24px #1e1d19a8}.amp{font-size:.62em;color:#e3d8c1;padding:0 9px}.hero-subtitle{font:500 10px var(--sans);letter-spacing:.35em;text-transform:uppercase;margin:24px 0 11px}.hero-date{font:400 28px var(--serif);letter-spacing:.12em}.hero-place{font:500 9px var(--sans);letter-spacing:.21em;text-transform:uppercase;color:#f0eadf;margin-top:8px}.hero .ornament{color:#f0ddba;margin:23px auto}.hero .ornament:before,.hero .ornament:after{background:#ffffff80}.hero-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:31px}.countdown{display:flex;justify-content:center;gap:clamp(15px,3vw,38px);margin:40px auto 0}.count-unit{min-width:66px}.count-unit strong{display:block;font:400 clamp(29px,4vw,42px)/1 var(--serif);letter-spacing:.03em}.count-unit span{display:block;margin-top:8px;font:500 8px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#eee7d9}
/* Intro / Paper details */
.intro{background:var(--paper);padding:100px 0 88px}.intro-card{position:relative;max-width:850px;margin:auto;text-align:center;padding:60px 7%;background:var(--white);box-shadow:var(--shadow);border:1px solid #e8e0d3}.intro-card:before,.intro-card:after{content:'';position:absolute;left:5%;right:5%;height:1px;background:repeating-linear-gradient(90deg,transparent,transparent 5px,var(--line) 5px,var(--line) 7px);opacity:.9}.intro-card:before{top:22px}.intro-card:after{bottom:22px}.intro-card .script{font-size:clamp(54px,7vw,82px);color:var(--olive);line-height:.9}.intro-card h2{font-size:clamp(31px,4vw,46px);font-weight:500;margin:13px 0 8px}.intro-card p{max-width:560px;margin:10px auto;color:var(--muted);font-size:20px}.intro-signature{font:400 42px var(--script);color:var(--olive);margin-top:16px}
/* Event cards */
.details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:stretch}.event-card{background:var(--white);border:1px solid #e7dfd2;box-shadow:0 18px 45px rgba(54,48,36,.07);padding:38px 35px;text-align:center;position:relative;overflow:hidden}.event-card:before{content:'';position:absolute;inset:10px;border:1px solid #e4dccf;pointer-events:none}.event-card .event-icon{width:43px;height:43px;color:var(--olive);margin:0 auto 17px}.event-card h3{font:500 37px/1 var(--serif);margin:0 0 12px}.event-card .time{font:500 10px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--olive)}.event-card p{color:var(--muted);margin:12px auto 20px;max-width:300px}.event-card .btn{padding:12px 20px}.event-small{font:500 9px var(--sans);letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin-top:13px}
/* Timeline */
.timeline-section{background:var(--paper2)}.timeline{max-width:760px;margin:0 auto;position:relative}.timeline:before{content:'';position:absolute;left:34px;top:20px;bottom:20px;width:1px;background:#c9c2b2}.timeline-item{position:relative;display:grid;grid-template-columns:70px 1fr;gap:24px;align-items:center;padding:16px 0}.timeline-icon{width:68px;height:68px;border-radius:50%;background:var(--paper);border:1px solid #d6cebf;display:grid;place-items:center;color:var(--olive);z-index:1}.timeline-icon .icon{width:26px;height:26px}.timeline-copy{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 22px;background:#f9f6f0;border:1px solid #e2dacd}.timeline-copy h3{font-size:25px;font-weight:500;margin:0}.timeline-copy p{font:500 9px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:4px 0 0}.timeline-time{font:500 15px var(--serif);color:var(--olive-dark);white-space:nowrap}
/* Album */
.album-section{overflow:hidden}.album-viewport{overflow:hidden;padding:12px 5px 30px}.album-track{display:flex;align-items:center;gap:26px;transition:transform .6s cubic-bezier(.22,.8,.25,1);will-change:transform}.photo-card{flex:0 0 calc((100% - 52px)/3);border:0;background:transparent;padding:0;text-align:left;transform:rotate(-1.2deg);transition:transform .35s;cursor:zoom-in}.photo-card:nth-child(even){transform:rotate(1.3deg) translateY(17px)}.photo-card:hover{transform:rotate(0) translateY(-7px);z-index:2}.photo-frame{background:#fffefa;padding:13px 13px 20px;box-shadow:0 14px 32px rgba(55,47,34,.16);border:1px solid #e4ded3}.photo-frame img{width:100%;height:350px;object-fit:cover;filter:saturate(.88)}.photo-caption{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 6px 0;color:var(--ink)}.photo-caption span:first-child{font:400 29px var(--script);color:var(--olive)}.photo-caption span:last-child{font:500 8px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.album-controls{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:12px}.round-btn{width:44px;height:44px;border-radius:50%;border:1px solid #bdb8a9;background:transparent;color:var(--olive-dark);display:grid;place-items:center;transition:.2s}.round-btn:hover{background:var(--olive);color:white;border-color:var(--olive)}.album-dots{display:flex;gap:7px}.album-dot{width:6px;height:6px;border-radius:50%;background:#c9c3b7;border:0;padding:0}.album-dot.active{background:var(--olive);transform:scale(1.35)}
/* RSVP */
.rsvp-section{background:#e8e3d8}.rsvp-wrap{max-width:950px;margin:auto;display:grid;grid-template-columns:.85fr 1.15fr;background:#fbf9f3;box-shadow:var(--shadow);border:1px solid #ddd5c7}.rsvp-aside{background:var(--olive-dark);color:#fffaf0;padding:54px 42px;display:flex;flex-direction:column;justify-content:center;text-align:center;position:relative;overflow:hidden}.rsvp-aside:after{content:'❧';position:absolute;bottom:-35px;right:-8px;font:170px var(--serif);color:#ffffff10}.rsvp-aside .script{font-size:69px;line-height:.9}.rsvp-aside h3{font:500 34px var(--serif);margin:15px 0}.rsvp-aside p{color:#f2eee2c9;font-size:18px}.rsvp-aside .deadline{font:500 9px var(--sans);letter-spacing:.18em;text-transform:uppercase;margin-top:21px}.rsvp-form{padding:48px 50px}.rsvp-form h3{font-size:36px;font-weight:500;margin:0 0 4px}.rsvp-form>p{color:var(--muted);font-size:18px;margin:0 0 25px}.field{margin-bottom:17px}.field label{display:block;font:600 9px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}.field input,.field select,.field textarea{width:100%;border:0;border-bottom:1px solid #cfc8b9;background:transparent;padding:10px 2px;color:var(--ink);outline:none;font:400 18px var(--serif);border-radius:0}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--olive);box-shadow:0 1px var(--olive)}.radio-row{display:flex;gap:18px;flex-wrap:wrap}.radio-row label{display:flex;align-items:center;gap:8px;font:500 14px var(--serif);color:var(--ink);letter-spacing:0;text-transform:none}.radio-row input{accent-color:var(--olive)}.form-submit{width:100%;margin-top:9px}.form-note{min-height:24px;font:500 11px var(--sans);color:var(--olive-dark);margin-top:13px}
/* Footer and modal */
.footer{background:#454a3d;color:#f7f2e8;padding:58px 0 30px;text-align:center}.footer .script{font-size:72px;line-height:1}.footer p{font:500 9px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#e5e0d3b8}.footer .ornament{color:#d8c6a2;margin:23px auto}.footer .ornament:before,.footer .ornament:after{background:#ffffff45}.footer-bottom{border-top:1px solid #ffffff26;padding-top:20px;margin-top:35px;font:500 8px var(--sans);letter-spacing:.12em;color:#e5e0d3a0}.photo-modal{border:0;padding:0;background:transparent;max-width:min(92vw,1000px);max-height:92vh;overflow:visible}.photo-modal::backdrop{background:rgba(23,23,20,.88);backdrop-filter:blur(5px)}.modal-inner{position:relative;background:#fffefa;padding:15px;box-shadow:0 25px 90px #0006}.modal-inner img{max-height:78vh;width:100%;object-fit:contain}.modal-caption{text-align:center;font:400 32px var(--script);color:var(--olive);padding:7px 0 0}.modal-close{position:absolute;right:-17px;top:-17px;background:var(--paper);border:0;width:40px;height:40px;border-radius:50%;font:22px var(--sans);box-shadow:0 5px 15px #0002}.modal-prev,.modal-next{display:none;position:fixed;top:50%;transform:translateY(-50%);border:1px solid #ffffff7a;background:#ffffff20;color:white;width:45px;height:45px;border-radius:50%;place-items:center}.modal-open .modal-prev,.modal-open .modal-next{display:grid}.modal-prev{left:20px}.modal-next{right:20px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#343a2d;color:white;padding:13px 20px;border-radius:999px;font:500 10px var(--sans);letter-spacing:.06em;z-index:100;transition:.3s}.toast.show{opacity:1;transform:translate(-50%,0)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}
@media(max-width:850px){.nav-links{gap:17px}.nav-links a{font-size:8px}.hero{min-height:720px;height:92svh}.details-grid{gap:16px}.event-card{padding:34px 22px}.photo-frame img{height:300px}.rsvp-wrap{grid-template-columns:.8fr 1.2fr}.rsvp-aside{padding:42px 25px}.rsvp-form{padding:42px 32px}}
@media(max-width:680px){html{scroll-padding-top:70px}.container{width:min(100% - 32px,540px)}.section{padding:78px 0}.site-header{padding:14px 0}.brand{font-size:33px}.nav-links{display:none;position:absolute;top:68px;left:16px;right:16px;background:#34382feF;border:1px solid #ffffff2c;border-radius:12px;padding:19px;flex-direction:column;align-items:stretch;gap:18px;box-shadow:0 18px 40px #0003}.nav-links.open{display:flex}.nav-links a{font-size:10px;padding:3px}.menu-toggle{display:flex}.lang-switch{padding:9px 10px}.nav-actions{gap:8px}.hero{height:auto;min-height:780px;max-height:920px}.hero:after{inset:9px}.hero:before{background:linear-gradient(0deg,rgba(20,22,18,.73),rgba(25,26,22,.22) 65%,rgba(20,22,18,.22)),url('album-1.webp') 50% center/cover}.hero-content{margin:120px auto 48px}.hero-names{font-size:clamp(82px,20vw,130px);margin:32px 0 25px}.hero-kicker{font-size:8px;letter-spacing:.25em}.hero-date{font-size:24px}.countdown{gap:13px;margin-top:34px}.count-unit{min-width:53px}.count-unit strong{font-size:31px}.count-unit span{font-size:7px;letter-spacing:.1em}.hero-actions .btn{padding:12px 17px;font-size:8px}.intro{padding:70px 0}.intro-card{padding:51px 8%}.intro-card .script{font-size:62px}.intro-card h2{font-size:32px}.details-grid{grid-template-columns:1fr;gap:18px}.event-card{padding:34px 26px}.section-heading{margin-bottom:37px}.section-heading .script{font-size:59px}.timeline:before{left:28px}.timeline-item{grid-template-columns:58px 1fr;gap:13px}.timeline-icon{width:56px;height:56px}.timeline-copy{padding:13px 14px;gap:7px}.timeline-copy h3{font-size:22px}.timeline-copy p{font-size:7px}.timeline-time{font-size:13px}.photo-card{flex:0 0 78%}.photo-frame{padding:10px 10px 17px}.photo-frame img{height:360px}.album-track{gap:17px}.rsvp-wrap{grid-template-columns:1fr}.rsvp-aside{padding:40px 28px}.rsvp-aside .script{font-size:61px}.rsvp-aside h3{margin:9px 0}.rsvp-aside p{margin:6px auto}.rsvp-form{padding:36px 25px}.rsvp-form h3{font-size:32px}.footer{padding:45px 0 24px}.footer .script{font-size:64px}.modal-prev{left:9px}.modal-next{right:9px}.modal-prev,.modal-next{width:38px;height:38px}}
@media(max-width:390px){.lang-switch{font-size:8px;padding:8px}.brand{font-size:29px}.hero-names{font-size:78px}.count-unit{min-width:47px}.count-unit strong{font-size:28px}.photo-frame img{height:310px}.timeline-copy h3{font-size:19px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}


/* LUISA & MARIO — refined cinematic edition */
.hero:before{background:linear-gradient(90deg,rgba(20,20,16,.72),rgba(25,25,20,.34) 52%,rgba(20,20,16,.20)),linear-gradient(0deg,rgba(22,24,20,.56),transparent 58%),url('hero-kiss.gif') center 43%/cover;transform:scale(1.015);animation:heroBreath 16s ease-in-out infinite alternate}
@keyframes heroBreath{from{transform:scale(1.015)}to{transform:scale(1.065)}}
.hero-names{display:flex;align-items:center;justify-content:center;gap:clamp(14px,3vw,36px);font-size:clamp(66px,10vw,132px);line-height:.82;margin:29px 0 18px;white-space:nowrap}
.hero-name-group{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0}
.hero-first{font:400 1em/.78 var(--script);letter-spacing:-.015em}
.hero-surname{font:500 clamp(10px,1.28vw,16px)/1.1 var(--sans);letter-spacing:.34em;text-transform:uppercase;color:#f0e7d5;text-shadow:0 2px 10px #17171188;padding-left:.34em}
.hero-names .amp{font:400 .55em/1 var(--serif);align-self:center;padding:0 2px;color:#dfceb0}
.music-player{position:relative;display:flex;align-items:center;gap:13px;width:min(340px,90%);margin:25px auto 2px;padding:10px 15px;border:1px solid #ffffff65;border-radius:999px;background:rgba(25,27,21,.36);backdrop-filter:blur(13px);box-shadow:0 12px 35px #17171128;text-align:left}
.music-player audio{display:none}
.music-toggle{flex:0 0 34px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:1px solid #e8dcc4aa;background:#e8dcc4;color:#535844;transition:transform .25s,background .25s}
.music-toggle:hover{transform:scale(1.07);background:#fff8ed}
.music-icon{width:15px;height:15px;fill:currentColor;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.pause-icon{display:none;fill:none}
.music-player.is-playing .play-icon{display:none}.music-player.is-playing .pause-icon{display:block}
.music-info{display:flex;flex-direction:column;min-width:0;flex:1;gap:1px}
.music-title{font:600 9px var(--sans);letter-spacing:.19em;text-transform:uppercase;color:#fff9ed}
.music-status{font:400 11px var(--serif);letter-spacing:.04em;color:#e9dfce}
.music-meter{height:2px;background:#ffffff45;border-radius:9px;overflow:hidden;width:52px;flex:0 0 52px}
.music-meter span{display:block;width:0;height:100%;background:#e6d4af;transition:width .15s linear}
.music-note{font:italic 23px var(--serif);color:#ead9ba;line-height:1}
.hero .ornament{margin:17px auto 20px}
.hero-subtitle{margin:18px 0 10px}
.brand{font-size:40px;text-shadow:0 2px 15px #16171065}
.footer .script{font-size:clamp(62px,8vw,92px);color:var(--olive)}
@media(max-width:680px){
 .hero:before{background:linear-gradient(0deg,rgba(20,22,18,.78),rgba(25,26,22,.22) 72%,rgba(20,22,18,.27)),url('hero-kiss.gif') 59% center/cover;animation-duration:20s}
 .hero-names{font-size:clamp(57px,15vw,88px);gap:10px;margin:28px 0 15px}
 .hero-name-group{gap:9px}.hero-surname{font-size:9px;letter-spacing:.24em}
 .music-player{width:min(315px,94%);margin-top:24px;padding:9px 13px}.music-meter{width:36px;flex-basis:36px}
 .hero-content{margin:108px auto 43px}
}
@media(max-width:390px){.hero-names{font-size:54px;gap:7px}.hero-surname{font-size:8px;letter-spacing:.2em}.music-player{gap:9px}}
