@font-face{font-family:Celebration;src:url('assets/serif.ttf') format('truetype');font-style:normal;font-weight:400 700;font-display:swap}
@font-face{font-family:Celebration;src:url('assets/serif-italic.ttf') format('truetype');font-style:italic;font-weight:400 700;font-display:swap}
@font-face{font-family:Signature;src:url('assets/signature.ttf') format('truetype');font-display:swap}
:root{--navy:#092b50;--gold:#a7792d;--pale-gold:#ddbc80;--cream:#faf8f2;--muted:#62717e;--serif:Celebration,Georgia,'Times New Roman',serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--cream);color:var(--navy);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}body::before{content:'';position:fixed;inset:0;opacity:.035;pointer-events:none;z-index:3;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='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.4' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}a,button,input{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #b7893a;outline-offset:5px}img{display:block;max-width:100%}figure,p,h1,h2,h3{margin:0}em{font-style:italic;color:var(--gold)}h1,h2,h3{font-family:var(--serif);font-weight:400}h2{font-size:clamp(2.4rem,4.5vw,4rem);line-height:1.12;letter-spacing:-.04em}.eyebrow{font-size:.75rem;letter-spacing:.19em;font-weight:600;display:flex;align-items:center;gap:12px}.gold{color:var(--pale-gold)}.header{max-width:1320px;margin:auto;padding:28px 50px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #092b5017}.brand{display:flex;align-items:center;gap:14px;line-height:1.4;font-size:.72rem;font-weight:600;letter-spacing:.12em}.monogram{font-family:Georgia,serif;font-size:2.5rem;letter-spacing:-.25em;font-weight:400;border-right:1px solid #ad854148;padding-right:23px;line-height:1}.monogram span{color:var(--gold)}nav{display:flex;gap:32px;align-items:center;font-size:.875rem}nav a{padding:8px 0}.nav-video{border-bottom:1px solid var(--gold)}.nav-video span{margin-left:15px;color:var(--gold)}.hero{max-width:1320px;margin:auto;padding:74px 50px 78px;display:grid;grid-template-columns:1.05fr 1fr;gap:34px;align-items:center;overflow:hidden}.small-snow{color:var(--gold);font-size:1.4rem}h1{font-size:clamp(3.2rem,5.1vw,4.9rem);line-height:1.1;letter-spacing:-.055em;margin:24px 0}h1 em{white-space:nowrap}.hero-copy{color:var(--muted);line-height:1.85;font-size:1rem}.hero-actions{display:flex;gap:23px;align-items:center;margin-top:29px}.button{display:inline-flex;align-items:center;justify-content:center;gap:13px;padding:15px 25px;border:0;border-radius:5px;font-size:.875rem;font-weight:500;transition:transform .25s,background .25s;line-height:1.4}.button:hover{transform:translateY(-3px)}.primary{background:var(--navy);color:#fff}.primary:hover{background:#134570}.button>span{font-size:1.3rem}.text-link{font-size:.85rem;border-bottom:1px solid #b9904e90;padding:8px 0;display:inline-block}.text-link span{color:var(--gold);margin-left:7px}.signature{font-family:Signature,'Brush Script MT',cursive;font-size:2.55rem;font-weight:400;line-height:1.3;margin-top:34px}.hero-art{position:relative;height:555px;isolation:isolate;margin-right:-7px}.hero-photo{position:absolute;inset:19px 23px 17px 20px;border-radius:49% 49% 4px 4px;overflow:hidden;box-shadow:0 25px 45px #092b5015;border:7px solid #fff}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 48%;transform:scale(1.03)}.hero-photo-shade{position:absolute;inset:0;background:linear-gradient(0deg,#092b5055,transparent 28%)}.art-orbit{position:absolute;inset:0 2px 0 0;border:1px solid #b88e484f;border-radius:50% 50% 4px 4px;transform:rotate(5deg);z-index:-1}.floating-photo{position:absolute;padding:8px 8px 10px;background:white;box-shadow:0 10px 35px #092b5023;width:183px;animation:float 7s ease-in-out infinite}.floating-photo img{height:111px;width:100%;object-fit:cover}.floating-photo figcaption{font-family:var(--serif);font-style:italic;font-size:.85rem;padding:8px 2px 0;white-space:nowrap}.photo-one{left:-28px;top:37px;--rotation:-9deg;transform:rotate(-9deg)}.photo-two{right:-16px;bottom:45px;--rotation:8deg;transform:rotate(8deg);animation-delay:-3s}.photo-stamp{position:absolute;bottom:42px;left:43px;color:#fff}.photo-stamp span{font-size:.62rem;letter-spacing:.17em}.photo-stamp strong{display:block;font-family:var(--serif);font-size:2rem;font-weight:400;line-height:1.2;margin-top:10px}.art-snow{position:absolute;color:var(--gold);font-size:2.9rem}.snow-one{right:7px;top:4px;animation:turn 30s linear infinite}.snow-two{bottom:1px;left:-15px;font-size:3.7rem}.event-strip{border-top:1px solid #a7792d40;border-bottom:1px solid #a7792d40;max-width:1220px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:25px 0;gap:25px}.strip-label{display:block;font-size:.67rem;letter-spacing:.13em;color:var(--muted);margin-bottom:6px}.event-strip strong{font-size:1rem;font-weight:500}.event-strip small{font-size:.875rem;color:var(--muted);font-weight:400}.strip-snow{color:var(--gold);font-size:1.8rem}.event-strip>a{font-size:.875rem}.event-strip>a span{margin-left:20px;color:var(--gold)}.film-section{margin-top:80px;background:var(--navy);color:white;padding:76px max(50px,calc((100vw - 1220px)/2)) 60px;position:relative}.film-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:35px}.film-heading h2{margin-top:15px}.film-heading em{color:var(--pale-gold)}.film-heading>p{color:#cad4de;font-size:.875rem;line-height:1.8}.video-frame{position:relative;aspect-ratio:16/9;border:1px solid #d3b07866;border-radius:8px;overflow:hidden;background:#071b32;box-shadow:0 20px 60px #0002}video{display:block;width:100%;height:100%;object-fit:contain}.video-cover{position:absolute;inset:0;width:100%;border:0;color:white;background:linear-gradient(180deg,#092b5015,#04162cd9);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:17px;transition:background .3s}.video-cover:hover{background:linear-gradient(180deg,#092b5000,#04162cb9)}.video-cover>span:nth-child(2){font-family:var(--serif);font-size:clamp(1.6rem,3.3vw,3rem);letter-spacing:.13em}.play-circle{border-radius:50%;width:77px;height:77px;display:grid;place-items:center;padding-left:5px;color:var(--navy);background:var(--pale-gold);font-size:1.6rem;box-shadow:0 0 0 12px #ffffff18;transition:transform .3s}.video-cover:hover .play-circle{transform:scale(1.09)}.video-subtitle{font-size:.9rem;color:#dae1e9}.video-cover[hidden]{display:none}.film-toolbar{padding:20px 0 29px;display:flex;align-items:center;justify-content:space-between;gap:16px}.film-detail{display:flex;align-items:center;gap:10px;color:#c6d1dc;font-size:.8rem}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--pale-gold)}.detail-divider{padding:0 7px;color:#54708a}.film-controls{display:flex;gap:28px;font-size:.8rem;align-items:center}.loop-toggle{display:flex;gap:9px;align-items:center;cursor:pointer;position:relative}.loop-toggle input{position:absolute;width:32px;height:18px;opacity:0}.toggle-track{width:32px;height:18px;border:1px solid #8e9daa;border-radius:16px;position:relative;transition:background .2s}.toggle-track:after{content:'';position:absolute;left:3px;top:3px;width:10px;height:10px;border-radius:50%;background:#c8d3df;transition:transform .2s}.loop-toggle input:checked+.toggle-track{background:var(--pale-gold);border-color:var(--pale-gold)}.loop-toggle input:checked+.toggle-track:after{transform:translateX(14px);background:var(--navy)}.loop-toggle input:focus-visible+.toggle-track{outline:3px solid var(--pale-gold);outline-offset:3px}.screen-button{background:none;color:#e4eaf0;border:0;padding:4px}.screen-button span{font-size:1.1rem;vertical-align:middle;margin-right:5px}.download-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid #c2a87345;padding-top:29px}.download-panel h3{font-size:1.9rem}.download-panel p{color:#bdccd9;font-size:.875rem;margin-top:3px}.download-actions{display:flex;align-items:center;gap:28px}.gold-button{position:relative;background:var(--pale-gold);color:var(--navy);display:grid;grid-template-columns:auto 1fr;column-gap:13px;row-gap:2px;padding:13px 23px;text-align:left}.gold-button>span{grid-row:1/3}.gold-button small{grid-column:2;font-size:.69rem;font-weight:400}.light-download{font-size:.8rem;border-bottom:1px solid #bba16e99;padding:5px 0}.light-download span{padding-left:16px;color:var(--pale-gold)}.light-download small{display:block;font-size:.7rem;color:#c6d3df}.video-error{padding-top:15px;color:#ffe0a7}.memories-section{padding:86px 0 70px;overflow:hidden}.section-heading{text-align:center;padding:0 25px}.section-heading .eyebrow{justify-content:center}.section-heading h2{margin:18px 0}.section-heading>p:last-child{color:var(--muted);font-size:.95rem}.memory-wall{margin-top:44px;display:flex;flex-direction:column;gap:20px}.memory-track{display:flex;width:max-content;gap:20px;animation:drift 85s linear infinite;padding:8px 0}.memory-track.reverse{animation-direction:reverse;animation-duration:100s;transform:translateX(-160px)}.memory-card{border:0;flex:0 0 225px;width:225px;padding:8px 8px 11px;background:#fff;box-shadow:0 4px 15px #092b5010;transform:rotate(var(--tilt));transition:transform .25s;position:relative}.memory-card:hover{transform:rotate(0) translateY(-5px)}.memory-card img{height:154px;width:100%;object-fit:cover}.memory-card span{font-family:var(--serif);font-style:italic;display:block;padding-top:9px;font-size:.9rem;color:var(--navy)}.memory-wall:hover .memory-track,.memory-wall:focus-within .memory-track,.memory-wall.paused .memory-track{animation-play-state:paused}.gallery-controls{max-width:1220px;margin:28px auto 0;padding:0 20px;display:flex;justify-content:center;gap:25px;align-items:center;color:var(--muted);font-size:.8rem}.gallery-controls button{background:none;border:0;border-bottom:1px solid #a7792d5c;color:var(--navy);padding:4px 0}.gallery-controls button span{padding-right:6px}.evening-section{border-top:1px solid #a7792d33;border-bottom:1px solid #a7792d33;max-width:1220px;margin:auto;padding:75px 0;display:grid;grid-template-columns:1fr 1fr;gap:100px}.evening-intro h2{margin:20px 0 24px}.evening-intro>p:not(.eyebrow){color:var(--muted);max-width:380px;font-size:.95rem}.venue{margin:27px 0 8px;display:flex;gap:14px;align-items:center}.venue>span{font-size:2.4rem;color:var(--gold);line-height:1}.venue strong{display:block;font-family:var(--serif);font-size:1.6rem;font-weight:400}.venue div>span{display:block;color:var(--muted);font-size:.875rem}.poster-link{font-size:.85rem;margin-left:25px;color:var(--muted);display:inline-block;padding:8px 0}.program-label{font-size:.73rem;letter-spacing:.17em;color:var(--gold);padding:4px 0 14px}.program-item{display:flex;gap:20px;padding:23px 0;border-bottom:1px solid #092b501c;align-items:start}.program-number{font-family:var(--serif);font-size:1.5rem;color:var(--gold);line-height:1.3}.program-item h3{font-size:1.45rem;line-height:1.3}.program-item p{font-size:.875rem;color:var(--muted);margin-top:5px}.program-time{margin-left:auto;font-size:.8rem;color:var(--gold);padding-top:5px}.stay-note{font-size:.8rem;color:var(--muted);line-height:1.7;margin-top:22px;padding-left:42px}.thanks-section{text-align:center;padding:70px 25px 78px;background:radial-gradient(ellipse at center,#fff 10%,transparent 70%)}.thanks-snow{display:block;color:var(--gold);font-size:2.5rem;margin-bottom:20px;animation:turn 45s linear infinite}.thanks-section .eyebrow{justify-content:center}.thanks-section h2{margin:23px 0}.thanks-section>p:not(.eyebrow):not(.signature):not(.celebration-message){color:var(--muted);font-size:clamp(1.2rem,2.2vw,1.5rem);line-height:1.75}.thanks-section .button{margin-top:27px}.thanks-section .signature{color:var(--gold);margin-top:20px}.celebration-message{min-height:24px;margin-top:8px;font-size:.9rem;color:var(--gold)}footer{border-top:1px solid #092b501c;max-width:1320px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 50px;font-size:.75rem;color:var(--muted)}.footer-brand{font-size:.65rem}.footer-brand .monogram{font-size:2rem}.footer-brand>span:last-child{letter-spacing:.08em}footer>a:last-child{color:var(--navy)}#confetti{position:fixed;inset:0;pointer-events:none;z-index:20;width:100%;height:100%}dialog{border:0;padding:20px;border-radius:8px;background:var(--cream);max-width:min(90vw,1100px);max-height:90vh;box-shadow:0 25px 100px #0005}dialog::backdrop{background:#04182ceb;backdrop-filter:blur(6px)}dialog img{max-height:74vh;width:auto;object-fit:contain;margin:auto}dialog p{font-family:var(--serif);text-align:center;margin-top:12px;font-style:italic}.close-photo{position:absolute;top:25px;right:25px;border:0;border-radius:50%;width:40px;height:40px;font-size:1.7rem;line-height:1;background:white;color:var(--navy);box-shadow:0 2px 15px #0003}.skip-link{position:fixed;top:-100px;left:20px;background:white;padding:10px 15px;z-index:30}.skip-link:focus{top:10px}.reveal{transition:opacity .65s ease,transform .65s ease}.js-motion .reveal{opacity:0;transform:translateY(18px)}.js-motion .reveal.visible{opacity:1;transform:none}@keyframes float{0%,100%{transform:translateY(0) rotate(var(--rotation))}50%{transform:translateY(-9px) rotate(var(--rotation))}}@keyframes turn{to{transform:rotate(360deg)}}@keyframes drift{to{transform:translateX(-50%)}}
@media(min-width:1500px){.hero-art{height:580px}}
@media(max-width:1100px){.header{padding:24px 32px}.hero{padding:55px 32px 65px;gap:25px}.hero-art{height:500px}.floating-photo{width:145px}.floating-photo img{height:92px}.floating-photo figcaption{font-size:.7rem}.photo-one{left:-12px}.photo-two{right:-4px}.hero-actions{gap:15px;flex-wrap:wrap}.event-strip{margin:0 32px;gap:15px}.event-strip>a{display:none}.film-section{padding:60px 32px}.evening-section{margin:0 32px;gap:45px}.film-heading>p{max-width:300px}.download-actions{gap:20px}.photo-stamp{left:38px;bottom:42px}.photo-stamp strong{font-size:1.8rem}footer{padding:25px 32px}}
@media(max-width:760px){.header{padding:20px 22px}.brand{font-size:.62rem;gap:12px}.monogram{font-size:2.2rem}nav{gap:16px}nav>a:not(.nav-video){display:none}.nav-video{font-size:.8rem}.hero{padding:38px 24px 46px;grid-template-columns:1fr;gap:30px}.hero-text{text-align:center}.hero-text .eyebrow{justify-content:center;font-size:.69rem}h1{font-size:clamp(3rem,9.5vw,4.5rem);margin:20px 0;line-height:1.12}.hero-copy{font-size:.9rem}.hero-actions{justify-content:center;margin-top:23px;gap:17px}.signature{font-size:2.2rem;margin-top:24px}.hero-art{height:430px;max-width:430px;width:100%;margin:8px auto 0}.hero-photo{inset:15px 25px 12px}.hero-photo img{object-position:50% 45%}.photo-one{left:-5px;top:30px}.photo-two{right:-4px;bottom:30px}.photo-stamp{left:45px;bottom:42px}.art-snow{font-size:2.4rem}.event-strip{margin:0 24px;flex-direction:column;gap:18px;padding:24px 0;text-align:center}.strip-snow{display:none}.event-strip strong{font-size:.95rem}.strip-label{font-size:.65rem;margin-bottom:3px}.film-section{margin-top:42px;padding:44px 20px 38px}.film-heading{display:block;margin-bottom:25px}.film-heading>p{margin-top:20px;max-width:none;font-size:.85rem}.film-heading h2{font-size:2.55rem}.film-heading .eyebrow{font-size:.67rem}.video-frame{border-radius:4px}.play-circle{width:53px;height:53px;font-size:1.1rem;box-shadow:0 0 0 7px #ffffff18}.video-cover{gap:14px}.video-cover>span:nth-child(2){font-size:1.45rem}.video-subtitle{font-size:.64rem}.film-toolbar{padding:18px 0 23px;flex-wrap:wrap;justify-content:center;gap:13px}.film-detail{font-size:.75rem}.film-controls{font-size:.75rem;gap:20px}.download-panel{display:block;text-align:center;padding-top:24px}.download-panel h3{font-size:1.7rem}.download-actions{margin-top:20px;justify-content:center;flex-wrap:wrap;gap:18px}.gold-button{font-size:.85rem}.memories-section{padding:52px 0 42px}.section-heading h2{font-size:2.45rem;margin:18px 0}.section-heading>p:last-child{font-size:.85rem}.section-heading .eyebrow{font-size:.67rem}.memory-wall{margin-top:25px;gap:14px}.memory-track{gap:14px;animation-duration:85s}.memory-card{width:180px;flex-basis:180px;padding:6px 6px 9px}.memory-card img{height:125px}.memory-card span{font-size:.8rem}.gallery-controls{margin-top:22px;gap:14px;flex-direction:column;font-size:.73rem}.evening-section{grid-template-columns:1fr;gap:37px;padding:46px 0;margin:0 24px}.evening-intro h2{font-size:2.8rem}.evening-intro>p:not(.eyebrow){max-width:none;font-size:.875rem}.evening-intro .eyebrow{font-size:.7rem}.program-item{padding:21px 0;gap:16px}.program-item h3{font-size:1.3rem}.program-item p{font-size:.83rem}.program-label{font-size:.68rem}.stay-note{padding-left:36px;font-size:.75rem}.thanks-section{padding:50px 20px 45px}.thanks-section h2{font-size:2.65rem}.thanks-section .eyebrow{font-size:.65rem;letter-spacing:.13em}.thanks-section>p:not(.eyebrow):not(.signature):not(.celebration-message){font-size:1.2rem}.thanks-section .signature{font-size:2rem}footer{padding:25px 20px;flex-direction:column;text-align:center;gap:18px}.footer-brand .monogram{border:0;padding-right:12px}.desktop-break{display:none}dialog{padding:12px}.close-photo{top:18px;right:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js-motion .reveal{opacity:1;transform:none}.memory-track{transform:none}.memory-wall{overflow-x:auto}.memory-track.reverse{transform:none}}

.party-gallery{max-width:1220px;margin:0 auto;padding:65px 0 75px;border-top:1px solid #a7792d33;border-bottom:1px solid #a7792d33}.party-coming-soon{position:relative;max-width:850px;margin:38px auto 0;padding:45px 25px;text-align:center;border:1px solid #b58b4550;border-radius:8px;background:radial-gradient(ellipse at 50% 30%,#fff,#f5f1e7);box-shadow:0 12px 40px #092b5005}.party-coming-soon::before{content:'';position:absolute;inset:9px;border:1px solid #b58b4528;border-radius:4px;pointer-events:none}.album-mark{width:70px;height:70px;margin:0 auto 16px;color:var(--gold);transform:rotate(-6deg)}.album-mark svg{width:100%;height:100%}.coming-soon-label{display:inline-block;border:1px solid #a7792d4d;border-radius:30px;padding:5px 14px;color:var(--gold);font-size:.75rem;letter-spacing:.13em}.party-coming-soon h3{font-size:clamp(1.7rem,3vw,2.2rem);line-height:1.25;margin:18px 0 12px}.party-coming-soon p{font-size:1rem;color:var(--muted);line-height:1.8}.coming-soon-spark{display:block;color:var(--gold);font-size:1.7rem;margin-top:17px}.party-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:35px}.party-photo{position:relative;display:block;padding:8px;border:1px solid #a7792d25;background:white;border-radius:4px;overflow:hidden;box-shadow:0 5px 20px #092b500b;transition:transform .25s}.party-photo:hover{transform:translateY(-4px)}.party-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.party-photo-expand{position:absolute;right:17px;bottom:17px;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;background:#fff;color:var(--navy);box-shadow:0 3px 15px #092b5025}.party-coming-soon[hidden],.party-photo-grid[hidden]{display:none}@media(max-width:1100px){.party-gallery{margin:0 32px}}@media(max-width:760px){.party-gallery{margin:0 24px;padding:45px 0 46px}.party-gallery .section-heading{padding:0}.party-coming-soon{margin-top:27px;padding:32px 20px}.party-coming-soon p{font-size:.95rem}.party-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.party-photo{padding:5px}.party-photo-expand{right:11px;bottom:11px;width:28px;height:28px}}

/* Fondo opaco per mantenere leggibile il saluto sulla fotografia. */
.photo-stamp{background:var(--navy);padding:13px 17px 15px;border:1px solid #ddbc8066;border-radius:4px;box-shadow:0 8px 24px #04172c30;max-width:calc(100% - 100px)}.photo-stamp span{display:block;color:#f0d39d;font-size:.75rem;letter-spacing:.12em;line-height:1.5}.photo-stamp strong{color:#fff;margin-top:7px}@media(max-width:760px){.photo-stamp{padding:10px 13px 12px;max-width:calc(100% - 90px)}.photo-stamp span{font-size:.7rem}.photo-stamp strong{font-size:1.65rem}}

.music-credit{color:#c7d4e0;font-size:.78rem;line-height:1.8;margin:0 0 22px;max-width:850px}.music-credit a{color:#f0d39d;text-decoration:underline;text-underline-offset:3px}.music-credit a:hover{color:#fff}@media(max-width:760px){.music-credit{text-align:center;font-size:.75rem}}
