@font-face{font-family:Didot;src:url('https://static.parastorage.com/fonts/v2/6a8685bf-8255-4762-98b8-54a1192acc7c/v1/didot-w01-italic.woff2') format('woff2');font-style:italic;font-display:swap}
@font-face{font-family:Futura;src:url('https://static.parastorage.com/fonts/v2/8e5b5cbc-6ad9-49f7-aee7-4e5133c3ee4d/v1/futura-lt-w01-light.woff2') format('woff2');font-display:swap}
:root{--accent:#073cdd;--olive:#bdb894;--title:#ada989;--paper:#fbf7ec;--ink:#252525;--white:#fff;--botanical-hue:0deg;--frame:6.25vw;--header:80px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header)}body{margin:0;background:var(--white);color:var(--ink);font-family:Futura,'Century Gothic',sans-serif;font-size:18px;line-height:1.6}a{color:inherit;text-underline-offset:6px}button,summary,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}header{height:var(--header);padding:0 var(--frame);display:flex;align-items:center;justify-content:space-between;background:var(--white);position:sticky;top:0;z-index:10}.monogram{display:flex;align-items:center;gap:12px;color:var(--accent);text-decoration:none;font-size:22px}.monogram span{width:40px;height:1px;background:var(--ink)}nav{display:flex;gap:clamp(25px,5vw,78px)}nav a{text-decoration:none;text-transform:uppercase;font-size:14px}nav a:hover,nav a.active{color:var(--accent)}.menu-toggle{display:none}.side{position:fixed;top:50%;writing-mode:vertical-rl;font-size:14px;letter-spacing:2px;z-index:5}.left{left:2.3vw;transform:rotate(180deg)}.right{right:2.3vw}main{margin:0 var(--frame)}section{scroll-margin-top:0}.hero{min-height:730px;display:grid;place-items:center;padding:85px 24px;position:relative;background:var(--paper);isolation:isolate}.hero:before,.gallery:before{content:'';position:absolute;inset:0;background:url('assets/botanical.avif') center/cover;filter:hue-rotate(var(--botanical-hue));z-index:-1}.invitation{background:var(--white);width:min(740px,100%);padding:60px 35px 45px;text-align:center}.intro{font-size:21px;letter-spacing:1px;margin:4px 0 34px}h1,h2,.date-line i,.rsvp-message,.farewell{font-family:Didot,'Bodoni MT',Georgia,serif;font-style:italic;font-weight:400}h1{font-size:clamp(74px,10.8vw,140px);text-transform:uppercase;color:var(--title);line-height:.98;letter-spacing:-4px;margin:0 0 38px}h1>span{display:block}h1>span+span{margin-top:16px}em{color:var(--accent);font-weight:400}h1 em{text-transform:none}.date-line{display:flex;align-items:center;justify-content:center;gap:15px;font-size:16px;letter-spacing:.5px}.date-line i{font-size:35px;color:var(--accent);white-space:nowrap}.split{display:grid;grid-template-columns:1fr 1fr;min-height:650px}.section-title{background:var(--olive);display:flex;align-items:center;justify-content:center;flex-direction:column;padding:65px 25px;text-align:center}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:17px}.section-title .eyebrow{color:var(--accent);margin:0}.rule{width:1px;height:45px;background:var(--white);margin:30px 0 55px}h2{font-size:clamp(54px,7.6vw,100px);text-transform:uppercase;line-height:1.08;margin:0;color:var(--white);letter-spacing:-2px}.schedule{padding:65px clamp(24px,5vw,80px);text-align:center}.schedule>.eyebrow{font-size:20px;letter-spacing:1px;margin:0}.schedule>p+p{margin:14px 0 35px}.event{display:flex;align-items:center;gap:25px;margin:25px auto;text-align:left;max-width:300px}.event-number{font:italic 54px Didot,Georgia,serif;color:var(--accent)}h3{font-size:20px;font-weight:400;margin:0}.event p{font-size:16px;margin:0}details{margin-top:40px;font-size:16px}summary{cursor:pointer;list-style:none;text-decoration:underline}summary::-webkit-details-marker{display:none}.rsvp .section-title{background:var(--accent)}.rsvp .section-title .eyebrow{color:var(--white)}.rsvp-copy{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:65px 25px}.rsvp-copy .eyebrow{font-size:14px;color:var(--accent)}.rsvp-message{font-size:46px;line-height:1.15;color:var(--title);margin:25px 0}.status{border:1px solid var(--title);padding:12px 24px;margin-top:18px;font-size:15px}.gallery{position:relative;isolation:isolate;background:var(--paper);text-align:center;padding:115px 20px}.gallery:before{opacity:.3;transform:rotate(180deg)}.gallery h2{color:var(--accent);font-size:clamp(45px,6vw,80px)}.gallery>p:last-child{margin-top:30px}footer{text-align:center;padding:80px 24px 25px}footer h2{font-family:inherit;font-style:normal;letter-spacing:1px;font-size:24px;color:var(--accent)}.farewell{color:var(--accent);font-size:55px;margin:55px 0 35px}small{font-size:13px}.skip{position:fixed;top:-100px;left:20px;background:white;z-index:20;padding:10px}.skip:focus{top:10px}
@media(min-width:1500px){main{max-width:1400px;margin:auto}}@media(max-width:760px){:root{--frame:20px;--header:72px}.side{display:none}header{padding:0 24px}.menu-toggle{display:block;border:0;background:none;font:inherit;color:var(--accent);cursor:pointer}nav{display:none;position:absolute;top:72px;left:0;right:0;background:white;padding:25px;box-shadow:0 8px 10px #00000008}nav.open{display:flex;flex-direction:column;align-items:center;gap:22px}.hero{min-height:610px;padding:50px 20px}.invitation{padding:45px 18px}.intro{font-size:17px;margin-bottom:32px}h1{font-size:clamp(62px,15vw,100px);letter-spacing:-2px;margin-bottom:30px}.date-line{flex-direction:column;gap:3px;font-size:15px}.date-line i{font-size:34px;margin:4px}.split{grid-template-columns:1fr;min-height:0}.section-title{padding:50px 20px}.rule{height:30px;margin:18px 0 24px}h2{font-size:66px}.schedule{padding:45px 25px}.rsvp .section-title{grid-row:1}.rsvp-copy{padding:45px 20px}.rsvp-message{font-size:40px}.gallery{padding:85px 20px}footer{padding:55px 12px 25px}.farewell{font-size:45px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Palette ricavata dal sito degli sposi: salvia #7d8b88 e avorio #fcfbf6. */
:root{--accent:#4e615c;--olive:#7d8b88;--title:#697b74;--paper:#fcfbf6;--ink:#303a35;--white:#fffefa}
body{background:var(--paper)}header{background:var(--paper)}nav{gap:clamp(16px,2.8vw,44px)}nav a{font-size:14px;letter-spacing:.4px}.monogram span{background:var(--olive)}.side{color:var(--accent)}
.hero{min-height:730px;background:#eef0e8}.hero:before,.gallery:before{background:url('assets/botanical-top.png') left top / 45% auto no-repeat,url('assets/botanical-bottom.png') right bottom / 45% auto no-repeat;filter:none}.invitation{width:min(850px,100%);padding:56px 25px 38px}h1{font-size:clamp(65px,8.7vw,114px);letter-spacing:-3px;line-height:1.04}.intro{margin-bottom:28px}.date-line{gap:22px}.hero-venue{text-transform:uppercase;letter-spacing:2px;font-size:14px;margin:23px 0 0}.section-title .eyebrow{color:var(--white)}.section-title em{color:#e6e8d3}.section-title h2{font-size:clamp(48px,6.7vw,90px)}
.welcome{background:var(--paper)}.welcome-copy,.message-copy{padding:75px clamp(28px,5vw,75px)}.welcome-copy h2,.message-copy h2{color:var(--title);font-size:clamp(58px,6.7vw,90px);margin:27px 0}.welcome-copy>p,.message-copy>p{max-width:470px}.welcome-copy .eyebrow,.message-copy .eyebrow{font-size:14px;color:var(--accent)}.signature{font:italic 28px/1.4 Didot,Georgia,serif;color:var(--accent);padding-top:12px}.couple-photo{margin:0;min-height:650px;overflow:hidden}.couple-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;max-height:880px}.rsvp .section-title{background:var(--olive)}.rsvp-copy{background:var(--white)}.rsvp-message{color:var(--accent)}.muted{font-size:16px;color:#5f6d66}.status{display:inline-block;border-color:#aab7ad;color:var(--accent);font-size:14px}.schedule{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--white)}.venue-name{font:italic 42px/1.15 Didot,Georgia,serif;color:var(--accent);margin:25px 0}.schedule p{max-width:370px}.schedule address{font-style:normal;font-size:17px}.button{display:inline-block;border:1px solid var(--accent);padding:12px 28px;text-decoration:none;font-size:16px;margin:12px 0}.button:hover{background:var(--accent);color:var(--white)}.schedule details{margin-top:25px}
.messages{background:var(--paper)}.botanical-note{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:url('assets/botanical-top.png') left top / 65% auto no-repeat,url('assets/botanical-bottom.png') right bottom / 65% auto no-repeat,#eef0e8;padding:65px 20px}.botanical-note p{font:italic clamp(40px,4.5vw,65px)/1.22 Didot,Georgia,serif;color:var(--title);margin:20px 0}.botanical-note .rule{background:#aab7ad;margin:15px 0}.gifts{text-align:center;padding:100px 24px;background:var(--white)}.gifts h2{font-size:clamp(56px,7.3vw,96px);color:var(--title);margin:32px 0}.gift-copy{max-width:650px;margin:35px auto}.bank-details{max-width:550px;margin:40px auto 0;border-top:1px solid #ccd3c9;border-bottom:1px solid #ccd3c9;padding:20px}.bank-details summary{color:var(--accent)}.bank-details dl{margin-top:30px}.bank-details dt{font-size:14px;text-transform:uppercase;letter-spacing:1px;margin-top:20px}.bank-details dd{margin:6px 0;overflow-wrap:anywhere}.iban{letter-spacing:1px}footer .monogram{justify-content:center}footer .farewell{margin:25px 0}footer .eyebrow{font-size:14px}
@media(min-width:761px) and (max-width:1000px){nav{gap:14px}nav a{font-size:12px}.monogram{gap:7px}.monogram span{width:20px}}
@media(max-width:760px){nav{background:var(--paper)}nav a{font-size:15px}.hero{min-height:600px;padding:50px 16px}.hero:before{background-size:90% auto,90% auto}.invitation{padding:40px 12px 32px}h1{font-size:clamp(32px,8.1vw,62px);letter-spacing:-1px;line-height:1.15}h1>span+span{margin-top:12px}.intro{font-size:16px;margin-bottom:27px}.hero-venue{font-size:12px;letter-spacing:1px}.date-line{gap:4px}.date-line i{font-size:35px}.welcome-copy,.message-copy{padding:45px 25px}.couple-photo{min-height:0;height:470px}.couple-photo img{height:100%}.section-title h2{font-size:56px}.welcome-copy h2,.message-copy h2{font-size:62px}.botanical-note{min-height:440px}.gifts{padding:65px 24px}.gifts h2{font-size:54px}.bank-details{padding:20px 0}.rsvp-copy{padding:45px 20px}.status{padding:12px 16px}.schedule{padding:45px 24px}.venue-name{font-size:37px}}
.hero:before{background:url('assets/botanical-top.png') left top / 45% auto no-repeat}.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:url('assets/botanical-top.png') left top / 45% auto no-repeat;transform:rotate(180deg)}.botanical-note{background:url('assets/botanical-top.png') left top / 75% auto no-repeat,#eef0e8}
@media(max-width:760px){.hero:before,.hero:after{background-size:90% auto}}
.split>*{min-width:0}
@media(max-width:760px){.section-title h2{font-size:clamp(38px,10.6vw,56px)}.welcome-copy h2,.message-copy h2{font-size:clamp(38px,11.5vw,62px)}.gifts h2{font-size:clamp(32px,10vw,54px)}.status{max-width:100%}.venue-name{font-size:clamp(30px,8.8vw,37px)}}
/* Prima schermata: invito a tutta altezza, esclusa la navigazione. */
.hero{min-height:calc(100vh - var(--header));min-height:calc(100svh - var(--header))}
/* Pannelli sovrapposti: ogni sezione resta sotto la successiva. */
header{position:fixed;inset:0 0 auto;z-index:100}
body{padding-top:var(--header)}
main{isolation:isolate}
main>section[id],main>footer[id]{position:sticky;top:var(--panel-top,var(--header));min-height:calc(100vh - var(--header));min-height:calc(100svh - var(--header));isolation:isolate}
main>section:not(.hero){background-color:var(--paper)}
main>.rsvp,main>.details,main>.gifts{background-color:var(--white)}
main>footer{background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center}
.couple-photo{position:relative;min-height:0}
.couple-photo img{position:absolute;inset:0;width:100%;height:100%;max-height:none}
.welcome-copy,.message-copy{display:flex;flex-direction:column;justify-content:center}
.skip{z-index:110}
@media(prefers-reduced-motion:reduce){main>section[id],main>footer[id]{position:relative;top:auto}}

@media(min-width:761px){.welcome-copy,.message-copy{padding-top:30px;padding-bottom:30px}}
/* Tempo di lettura: il pannello resta visibile per un ulteriore tratto di scroll. */
main>section[id]{margin-bottom:clamp(220px,45svh,520px)}
.back-to-top{position:fixed;right:20px;bottom:24px;z-index:90;width:44px;height:44px;display:grid;place-items:center;background:var(--paper);color:var(--accent);border:1px solid #aab7ad;border-radius:50%;box-shadow:0 2px 10px #303a3510;transition:background .2s,color .2s}
.back-to-top[hidden]{display:none}.back-to-top svg{width:22px;height:22px}.back-to-top:hover{background:var(--accent);color:var(--paper)}
@media(max-width:760px){.back-to-top{right:12px;bottom:calc(16px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){main>section[id]{margin-bottom:0}.back-to-top{transition:none}}
/* Scritta laterale centrata nella fascia destra e nell'area sotto il menu. */
.side.right{right:calc(var(--frame) / 2);top:calc(50% + var(--header) / 2);transform:translate(50%,-50%)}
/* Data centrata nella fascia sinistra, mantenendo la lettura dal basso. */
.side.left{left:calc(var(--frame) / 2);top:calc(50% + var(--header) / 2);transform:translate(-50%,-50%) rotate(180deg)}
/* Mappa della location: colori attenuati, cornice salvia, controlli originali. */
#location .schedule{padding:32px clamp(24px,3vw,48px)}
#location .venue-name{margin:14px 0;font-size:36px}
#location .schedule>p:not(.eyebrow){font-size:16px;margin:14px 0 6px}
#location .button{margin:12px 0 20px;padding:9px 24px}
.venue-map{width:100%;border:1px solid #aab7ad;padding:6px;background:#eef0e8}
.venue-map iframe{display:block;width:100%;height:clamp(250px,32vh,340px);border:0;filter:saturate(.35) sepia(.12)}
.login-trigger{flex-shrink:0;width:44px;height:44px;border:0;background:transparent;color:var(--accent);display:grid;place-items:center;cursor:pointer;margin-left:20px;border-radius:50%}
.rsvp-trigger{font:inherit;background:transparent;color:var(--accent);cursor:pointer}
.rsvp-dialog{width:min(540px,calc(100% - 32px))}.rsvp-dialog [hidden]{display:none}.rsvp-dialog h2{font-size:42px}
.field-help{font-size:14px;color:var(--accent);margin:7px 0 12px}.demo-guests{background:none;border:0;padding:8px 0;color:var(--accent);font:inherit;font-size:14px;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.attendance{border:0;padding:0;margin:24px 0}.attendance legend{font-size:16px}.rsvp-dialog .attendance label{display:inline-flex;align-items:center;gap:8px;margin:12px 20px 0 0;min-height:44px}.rsvp-dialog .attendance input{appearance:none;flex:0 0 16px;width:16px;height:16px;min-height:16px;padding:0;margin:0;border:1px solid var(--accent);border-radius:50%;background:var(--white)}.rsvp-dialog .attendance input:checked{background:var(--accent);box-shadow:inset 0 0 0 3px var(--white)}
.guest-search{display:flex;gap:8px}.guest-search input{min-width:0}.guest-search button,.search-results button{border:1px solid #aab7ad;background:#eef0e8;color:var(--accent);padding:10px 16px;font:inherit;font-size:16px;cursor:pointer}.search-results button{display:block;width:100%;text-align:left;margin-top:8px;min-height:44px}.search-results p{font-size:14px;color:var(--accent);margin:8px 0}.search-results:empty{display:none}
.guestbook-trigger{align-self:flex-start}
.companion-button{background:#eef0e8;border:1px solid #aab7ad;color:var(--accent);padding:12px 16px;font:inherit;font-size:16px;cursor:pointer}.rsvp-dialog textarea{display:block;width:100%;resize:vertical;border:1px solid #aab7ad;background:var(--white);color:var(--ink);padding:12px;font:inherit;font-size:16px}.rsvp-dialog textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.login-trigger:hover{background:#eef0e8}.login-trigger svg,.login-close svg{width:23px;height:23px}
header nav{margin-left:auto}.login-dialog{width:min(460px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:48px 40px 30px;border:1px solid #aab7ad;background:var(--paper);color:var(--ink);overflow:auto;box-shadow:0 18px 80px #303a3525}
.login-dialog::backdrop{background:#303a3570;backdrop-filter:blur(4px)}.login-dialog .eyebrow{font-size:14px;color:var(--accent);text-align:center;margin:0 0 18px}.login-dialog h2{font-size:46px;text-transform:none;letter-spacing:-1px;color:var(--accent);text-align:center;line-height:1.15}.login-dialog>p:not(.eyebrow){text-align:center;font-size:16px;margin:18px 0 28px}
.login-close{position:absolute;right:10px;top:10px;width:44px;height:44px;display:grid;place-items:center;border:0;background:none;color:var(--accent);cursor:pointer}
.login-dialog label{display:block;font-size:16px;margin:18px 0 7px}.login-dialog input{width:100%;min-height:48px;border:1px solid #aab7ad;border-radius:0;background:var(--white);padding:11px 13px;color:var(--ink);font:inherit;font-size:16px}.login-dialog input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.login-submit{width:100%;min-height:48px;margin-top:28px;background:var(--accent);border:1px solid var(--accent);color:var(--white);font:inherit;font-size:17px;cursor:pointer}.login-submit:hover{background:#3c4e49}.login-feedback{font-size:14px;text-align:center;color:var(--accent);margin:16px 0 0}.login-open{overflow:hidden}
@media(max-width:760px){header .menu-toggle{margin-left:auto}.login-trigger{margin-left:12px}.login-dialog{padding:46px 25px 25px}.login-dialog h2{font-size:40px}}
@media(max-width:760px){#location .schedule{padding:35px 24px}.venue-map iframe{height:300px}}
