@import"https://fonts.googleapis.com/css2?family=Alex+Brush&family=DM+Sans:wght@400;500;700;900&family=Playfair+Display:ital,wght@0,400;0,500;1,400;1,500&family=Sacramento&family=Great+Vibes&family=Pinyon+Script&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.table{display:table}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{font-family:DM Sans,sans-serif;color:#2c2c2c;background:#f6f1e9;font-synthesis:none;--ink:#2c2c2c;--cream:#f6f1e9;--paper:#fbf9f5;--sage:#b5ada3;--blush:#e6cfc9;--terracotta:#c47763;--line:rgba(44,44,44,.18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink)}button,a{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer}a{text-decoration:none}.site-shell{overflow:hidden}.site-header{height:88px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;position:absolute;top:0;left:0;right:0;z-index:10;color:var(--ink)}.header-home{width:32px;height:32px;flex:none}.main-nav{display:flex;gap:31px;margin-left:auto;margin-right:45px}.main-nav button,.language-switch{font-size:10px;letter-spacing:1.3px;text-transform:uppercase}.main-nav button{position:relative}.main-nav button:after{content:"";position:absolute;bottom:-7px;left:0;width:0;height:1px;background:var(--ink);transition:.3s}.main-nav button:hover:after{width:100%}.header-actions{display:flex;align-items:center;gap:20px}.language-switch{display:flex;gap:5px;align-items:center}.language-switch button{opacity:.4;letter-spacing:1px;font-size:10px}.language-switch button.active{opacity:1}.mobile-menu{display:none}.hero{height:100svh;min-height:680px;position:relative;display:flex;align-items:center;justify-content:center;background:#e9e4d8;overflow:hidden}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#f6f1e994,#f6f1e92e 48%,#f6f1e96b);z-index:0}.hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 28%,rgba(246,241,233,.18) 100%);z-index:1;pointer-events:none}.hero-watermark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background-repeat:no-repeat;background-position:center;background-size:cover;mix-blend-mode:normal;opacity:.25;filter:saturate(0) contrast(1.05) brightness(.95);z-index:0}.hero-copy{text-align:center;position:relative;z-index:2;transform:translateY(-150px)}.eyebrow{font-size:10px;letter-spacing:2.4px;text-transform:uppercase;margin:0 0 25px;color:#8a8178}.hero-copy .eyebrow{font-family:DM Sans,sans-serif;font-size:clamp(13px,1.8vw,18px);letter-spacing:4px;margin:22px 0 18px}.hero h1{font-family:Great Vibes,cursive;font-size:clamp(50px,7.5vw,110px);font-weight:400;line-height:1.1;letter-spacing:0;margin:0;color:#4a4a4a;text-align:center}.hero h1 em{display:flex;flex-direction:column;align-items:center;gap:0;font-style:normal;line-height:.82}.hero h1 small{font-family:Great Vibes,cursive;font-weight:400;font-size:.55em;letter-spacing:0;color:#7a7a7a;display:block;line-height:1;margin:-.08em 0 .08em}.hero-names-blend{display:inline-block;border-radius:4px;margin-top:0}.hero-names-img{width:clamp(280px,55vw,620px);height:auto;display:block;opacity:.7;filter:brightness(0) invert(.15)}.hero-date-bottom{position:absolute;bottom:38px;left:0;right:0;z-index:3;text-align:center;font-size:clamp(16px,2vw,22px);letter-spacing:3.5px;text-transform:uppercase;color:#333;margin:0;font-weight:900}.text-link{display:inline-flex;align-items:center;gap:10px;text-transform:uppercase;font-size:10px;letter-spacing:1.8px;border-bottom:1px solid var(--ink);padding-bottom:9px}.text-link svg{transition:.3s}.text-link:hover svg{transform:translateY(4px)}.section-pad{padding:130px 11vw}.details-section{display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center;background:#f0ece5}.section-heading{max-width:425px}.section-heading .eyebrow{margin-bottom:20px}.section-heading h2,.rsvp-copy h2,.photo-title h1{font-family:Playfair Display;font-size:clamp(48px,5.5vw,78px);font-weight:400;line-height:.95;letter-spacing:-3px;margin:0 0 25px}.section-heading>p:last-child,.rsvp-copy>p,.photo-title>p:last-child{font-size:14px;line-height:1.8;color:#8a8178;max-width:350px}.detail-card{background:var(--paper);text-align:center;position:relative;padding:58px 40px 47px;box-shadow:20px 20px #d2cfc366}.card-number{position:absolute;top:22px;left:25px;color:#b5ada3;font-size:10px;letter-spacing:1px}.detail-icon{font-family:Playfair Display;font-size:39px;color:var(--terracotta);margin-bottom:20px}.detail-card h3{font-family:Playfair Display;font-size:30px;font-weight:400;margin:0 0 12px}.detail-card p{font-size:12px;line-height:1.7;color:#8a8178;margin:0}.rule{width:36px;height:1px;background:#c4a59b;margin:24px auto 17px}.detail-card strong{font-family:Playfair Display;font-size:24px;font-weight:400}.map-link{display:flex;align-items:center;gap:7px;justify-content:center;text-transform:uppercase;letter-spacing:1.4px;font-size:9px;margin-top:22px}.label{font-size:9px;text-transform:uppercase;letter-spacing:1.6px;color:#8a8178}.rsvp-section{background:var(--cream);padding-top:0;padding-bottom:120px}.envelope-top{position:relative;width:100%;max-width:720px;margin:0 auto;height:200px}.envelope-flap-bg{position:absolute;top:0;left:0;right:0;height:100%;background:#cec9c2;clip-path:polygon(0 0,50% 100%,100% 0);z-index:2}.rsvp-title-flap{position:absolute;top:28%;left:50%;transform:translate(-50%);z-index:3;font-family:Playfair Display;font-size:clamp(36px,5vw,56px);font-weight:400;letter-spacing:-1px;color:#000;margin:0;white-space:nowrap}.envelope-body-bg{display:none}.rsvp-content{max-width:580px;margin:0 auto;text-align:center;padding:20px 24px 0}.rsvp-intro{font-size:15px;line-height:1.8;color:#8a8178;margin:0 0 6px}.rsvp-mail{display:flex;align-items:center;justify-content:center;gap:9px;font-size:12px;letter-spacing:.3px;margin-top:12px;color:#8a8178}.rsvp-form{text-align:left;margin-top:48px}.rsvp-form label{display:block;margin-bottom:20px}.rsvp-form label span{display:block;font-size:9px;letter-spacing:1.3px;text-transform:uppercase;margin-bottom:8px;color:#999}.rsvp-form input,.rsvp-form textarea{width:100%;border:0;border-bottom:1px solid rgba(44,44,44,.18);background:transparent;padding:7px 0;color:var(--ink);outline:none;resize:none;font-size:13px}.rsvp-form input:focus,.rsvp-form textarea:focus{border-color:var(--ink)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:22px}.rsvp-attendance{border:none;padding:0;margin:0 0 20px}.rsvp-attendance legend{font-size:9px;letter-spacing:1.3px;text-transform:uppercase;color:#999;margin-bottom:12px}.radio-label{display:flex;align-items:center;gap:10px;cursor:pointer;margin-bottom:10px;font-size:13px;color:var(--ink)}.radio-label input[type=radio]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:18px;height:18px;border:1px solid rgba(44,44,44,.3);border-radius:50%;cursor:pointer;position:relative;flex-shrink:0;transition:.2s}.radio-label input[type=radio]:checked{border-color:var(--ink);background:var(--ink)}.radio-label input[type=radio]:checked:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:50%;background:#fff}.submit-button,.outline-button{display:flex;align-items:center;justify-content:center;gap:13px;text-transform:uppercase;letter-spacing:1.5px;font-size:9px;padding:14px 19px;border:1px solid rgba(44,44,44,.3);transition:.3s;margin-left:auto;margin-right:auto;cursor:pointer}.outline-button:hover,.outline-button:active{background:#d4d0ca;color:#2c2c2c;border-color:#d4d0ca}.submit-button{background:var(--ink);color:#fff;margin-top:28px}.submit-button:hover{background:#888;color:#fff;border-color:#888}.submit-button:disabled{opacity:.55;cursor:wait}.form-message{display:flex;align-items:center;justify-content:center;gap:7px;font-size:11px;line-height:1.5;margin:18px 0 0}.success{color:#8a8178}.error{color:#e05a4f}.rsvp-children-notice{font-size:15px;font-style:italic;line-height:1.7;color:#6b635b;margin-top:10px;padding-top:32px;border-top:1px solid rgba(44,44,44,.08);max-width:440px;margin-left:auto;margin-right:auto}.travel-section{position:relative;min-height:580px;display:flex;align-items:flex-start;justify-content:center;padding-bottom:0;overflow:hidden}.travel-bg-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;opacity:.5;z-index:0}.travel-section:before{content:none}.travel-overlay{position:relative;z-index:1;width:100%;padding:20px 5vw 100px;text-align:center;display:flex;flex-direction:column;align-items:center;min-height:580px}.center-heading{text-align:center;max-width:540px;margin:0 auto}.center-heading p:last-child{margin:0 auto}.island-scene{max-width:1050px;height:410px;margin:80px auto 35px;position:relative;overflow:hidden;background:linear-gradient(#c9c1b3,#ddd7cb 72%,#e5d9bf 72%);border-radius:50% 50% 0 0}.island-sun{width:130px;height:130px;border-radius:50%;position:absolute;top:44px;left:21%;background:#f2d2ac;box-shadow:0 0 0 24px #f2d2ac2e}.cloud{position:absolute;width:75px;height:13px;border-radius:50%;background:#fff9}.cloud:after{content:"";position:absolute;width:35px;height:26px;border-radius:50%;background:inherit;left:20px;top:-12px}.cloud-one{top:90px;left:43%}.cloud-two{top:160px;right:14%;transform:scale(.7)}.island{position:absolute;bottom:-30px;left:12%;width:75%;height:160px;border-radius:50% 50% 0 0;background:#cec5a8}.palm{position:absolute;bottom:85px;width:75px;height:180px}.palm span{position:absolute;width:7px;height:157px;background:#8a8178;bottom:0;left:35px;transform:rotate(-12deg);border-radius:100%}.palm i:before,.palm i:after{content:"⌁";font-style:normal;font-size:75px;position:absolute;color:#8a8178;top:2px;left:2px;transform:rotate(-35deg)}.palm i:after{transform:rotate(55deg) scaleX(-1);left:18px;top:0}.palm-left{left:18%;transform:rotate(-10deg)}.palm-right{right:18%;transform:scaleX(-1) rotate(-4deg)}.comic-character{position:absolute;bottom:91px;width:125px;height:170px}.comic-character .head{position:absolute;width:48px;height:48px;border-radius:50%;background:#e8b697;border:2px solid var(--ink);top:0;left:38px}.comic-character .body{position:absolute;width:51px;height:75px;border-radius:44% 44% 12px 12px;background:#d87963;border:2px solid var(--ink);top:44px;left:36px}.comic-character .legs{position:absolute;width:60px;height:48px;border-bottom:3px solid var(--ink);border-radius:50%;bottom:10px;left:31px;transform:rotate(-8deg)}.comic-character strong,.comic-character small{position:absolute;white-space:nowrap}.comic-character strong{font-family:Playfair Display;font-size:16px;top:-27px;left:10px}.comic-character small{font-size:8px;letter-spacing:.5px;top:-9px;left:2px;color:#8a8178}.giulio{left:32%;transform:rotate(-9deg);animation:float 4s ease-in-out infinite}.sara{right:31%;transform:scale(.92) rotate(5deg);animation:float 4.5s .5s ease-in-out infinite}.sara .body{background:#c4b8a8}.board{position:absolute;width:100px;height:14px;background:#cf8c75;border:2px solid var(--ink);border-radius:50%;left:10px;top:112px;transform:rotate(8deg)}.sara .towel{position:absolute;width:80px;height:13px;background:#e7cbb7;top:120px;left:20px;transform:rotate(-5deg);border:1px solid var(--ink)}.wave{position:absolute;bottom:69px;width:130px;height:40px;border-top:2px solid rgba(255,255,255,.8);border-radius:50%}.wave-one{left:5%;transform:rotate(-5deg)}.wave-two{right:4%;transform:rotate(4deg)}.travel-title-light{color:#fff}.travel-dream-text{text-align:center;font-family:Playfair Display;font-style:italic;font-size:22px;color:#ffffffe6;margin:12px 0 8px;letter-spacing:.3px}.travel-iban-cta{text-align:center;margin-top:auto;padding-bottom:20px}.iban-button{font-size:13px;padding:14px 38px;letter-spacing:1.5px;background:var(--ink);color:var(--cream);border-color:var(--ink);cursor:pointer}.iban-button:hover,.iban-button:active{background:#d4d0ca;color:#2c2c2c;border-color:#d4d0ca}.iban-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:9999;display:grid;place-items:center;animation:fadeIn .25s ease}.iban-modal{background:var(--paper);padding:48px 44px 40px;max-width:460px;width:90vw;position:relative;text-align:center}.iban-modal h3{font-family:Playfair Display;font-size:26px;margin:0 0 30px;color:var(--ink)}.iban-close{position:absolute;top:14px;right:18px;font-size:28px;background:none;border:none;cursor:pointer;color:var(--ink);padding:0;line-height:1}.iban-details{text-align:left}.iban-details p{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;border-bottom:1px solid rgba(44,44,44,.08);margin:0}.iban-details p:last-child{border-bottom:none}.iban-label{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:#a09890}.iban-value{font-size:15px;font-family:Playfair Display;color:var(--ink);text-align:right}.travel-ending{text-align:center;font-family:Playfair Display;font-style:italic;font-size:19px;margin:0}.travel-ending span{color:var(--terracotta);margin-left:8px}.photo-live-section{background:var(--paper);text-align:center;padding-bottom:90px}.photo-live-subtitle{font-family:Playfair Display;font-style:italic;font-size:20px;color:var(--ink);margin:10px 0 6px;letter-spacing:.3px}.photo-live-scan{font-size:13px;text-transform:uppercase;letter-spacing:1.5px;color:#a09890;margin:0 0 36px}.photo-live-qr{margin:0 auto 36px;width:220px;height:220px}.qr-image{width:220px;height:220px;border-radius:8px}.photo-live-buttons{display:flex;gap:14px;justify-content:center}.photo-live-buttons .outline-button{display:flex;align-items:center;gap:8px}.outline-button{margin-top:33px}.outline-button:hover{background:#d4d0ca;color:#2c2c2c;border-color:#d4d0ca}.site-footer{padding:30px 5vw;display:flex;align-items:center;justify-content:space-between;font-size:9px;text-transform:uppercase;letter-spacing:1.3px;background:var(--ink);color:var(--cream)}.site-footer a{display:flex;align-items:center;gap:8px}.photo-page{min-height:100vh;background:#f0ebe2}.photo-header{position:relative;background:var(--paper)}.back-button{display:flex;align-items:center;gap:10px;text-transform:uppercase;font-size:9px;letter-spacing:1.3px}.photo-main{max-width:1180px;margin:auto;padding:92px 5vw 120px}.photo-title{text-align:center;margin-bottom:55px}.photo-title h1{font-size:clamp(60px,8vw,110px);margin-bottom:20px}.photo-viewer{position:relative;display:flex;align-items:center;justify-content:center}.active-photo{width:min(75vw,780px);height:min(54vw,510px);min-height:340px;background-position:center;background-size:cover;position:relative;box-shadow:18px 18px #b2aa9e8c}.active-photo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 55%,rgba(25,47,39,.55))}.photo-caption{position:absolute;z-index:1;bottom:24px;left:27px;color:#fff;display:flex;flex-direction:column;gap:5px}.photo-caption span{font-family:Playfair Display;font-size:24px}.photo-caption small{font-size:9px;letter-spacing:1.5px;text-transform:uppercase}.slider-arrow{width:55px;height:55px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;margin:0 35px;transition:.3s}.slider-arrow:hover{background:var(--ink);color:var(--cream)}.photo-thumbnails{display:flex;justify-content:center;gap:10px;margin:62px 0 22px}.thumb{width:70px;height:55px;padding:0;opacity:.4;overflow:hidden}.thumb.active{opacity:1;outline:1px solid var(--ink);outline-offset:4px}.thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.photo-counter{text-align:center;font-family:Playfair Display;font-size:22px}.photo-counter span{font-size:13px;color:#a09890}.photo-page .site-footer{background:#d9d3c8;color:var(--ink)}.teaser-buttons{display:flex;gap:12px;align-items:center}.upload-page,.gallery-page{min-height:100svh;background:var(--cream);display:flex;flex-direction:column}.upload-main,.gallery-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 6vw 60px;text-align:center}.upload-main h1,.gallery-header-content h1{font-family:Playfair Display;font-size:clamp(36px,6vw,56px);font-weight:400;letter-spacing:-1px;margin:0 0 12px}.upload-subtitle,.gallery-subtitle{font-size:14px;color:#8a8178;margin:0 0 40px;max-width:340px}.capture-actions{display:flex;flex-direction:column;align-items:center;gap:0}.capture-btn{display:flex;align-items:center;justify-content:center;gap:10px;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;padding:16px 32px;border:1px solid var(--ink);transition:all .3s;width:100%;max-width:300px}.primary-capture{background:var(--ink);color:var(--cream)}.primary-capture:hover,.secondary-capture{background:transparent;color:var(--ink)}.secondary-capture:hover{background:var(--ink);color:var(--cream)}.capture-or{font-size:11px;color:#b5ada3;margin:16px 0;text-transform:lowercase;letter-spacing:.5px}.upload-preview{width:100%;max-width:420px}.preview-image-wrap{position:relative;width:100%;aspect-ratio:3/4;overflow:hidden;margin-bottom:20px;background:#e9e4d8}.preview-image{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.preview-warning{background:#f0ebe2;padding:14px 18px;margin-bottom:20px;font-size:12px;line-height:1.6;color:#8a8178;text-align:left}.guest-name-label{display:block;text-align:left;margin-bottom:24px}.guest-name-label span{display:block;font-size:9px;letter-spacing:1.3px;text-transform:uppercase;margin-bottom:8px;color:#8a8178}.guest-name-input{width:100%;border:0;border-bottom:1px solid rgba(44,44,44,.3);background:transparent;padding:8px 0;font-size:14px;color:var(--ink);outline:none}.guest-name-input:focus{border-color:var(--ink)}.preview-actions{display:flex;gap:12px}.preview-actions .capture-btn{flex:1}.upload-status{display:flex;flex-direction:column;align-items:center;gap:16px}.upload-spinner{width:36px;height:36px;border:2px solid rgba(44,44,44,.15);border-top-color:var(--ink);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.done-icon{width:56px;height:56px;border-radius:50%;background:var(--ink);color:var(--cream);display:grid;place-items:center}.done h2{font-family:Playfair Display;font-size:28px;font-weight:400;margin:8px 0 4px}.done p{font-size:13px;color:#8a8178;margin:0 0 28px}.done-actions{display:flex;gap:12px}.error-icon{width:56px;height:56px;border-radius:50%;background:#a05247;color:#fff;display:grid;place-items:center}.error-state p{font-size:13px;color:#a05247;margin:0 0 20px}.gallery-header-content{text-align:center;margin-bottom:40px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px;width:100%;max-width:960px}.gallery-item{position:relative;aspect-ratio:1;overflow:hidden;padding:0;border:0;cursor:pointer;background:#e9e4d8}.gallery-item img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .4s}.gallery-item:hover img{transform:scale(1.05)}.gallery-item-name{position:absolute;bottom:0;left:0;right:0;padding:8px 10px;font-size:10px;letter-spacing:.5px;text-transform:uppercase;color:#fff;background:linear-gradient(transparent,#00000073)}.gallery-loading{display:flex;justify-content:center;padding:80px 0}.gallery-empty{text-align:center;padding:60px 0}.gallery-empty p{font-size:14px;color:#8a8178;margin:0 0 24px}.gallery-fab{position:fixed;bottom:28px;right:28px;z-index:20}.fab-button{width:56px;height:56px;border-radius:50%;background:var(--ink);color:var(--cream);display:grid;place-items:center;box-shadow:0 4px 18px #0003;transition:transform .2s}.fab-button:hover{transform:scale(1.08)}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;z-index:100;display:flex;align-items:center;justify-content:center;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.lightbox-close{position:absolute;top:16px;right:16px;color:#fff;z-index:102;background:none;border:0;cursor:pointer;padding:8px;opacity:.7;transition:opacity .2s}.lightbox-close:hover{opacity:1}.lightbox-counter{position:absolute;top:20px;left:50%;transform:translate(-50%);color:#ffffff80;font-size:11px;letter-spacing:2px;z-index:102}.lightbox-swipe-track{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;touch-action:pan-y}.lightbox-slide{position:absolute;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.lightbox-slide img{max-width:90vw;max-height:75vh;-o-object-fit:contain;object-fit:contain;border-radius:2px}.lightbox-slide-prev{transform:translate(-100vw)}.lightbox-slide-next{transform:translate(100vw)}.lightbox-slide-active{position:relative;transform:none}.lightbox-info{display:flex;gap:16px;padding:14px 0;color:#ffffffa6;font-size:12px;letter-spacing:.5px}.lightbox-time{opacity:.5}.lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:102;background:#ffffff14;border:0;color:#ffffffb3;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;cursor:pointer;transition:background .2s,color .2s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.lightbox-arrow:hover{background:#ffffff2e;color:#fff}.lightbox-arrow-left{left:12px}.lightbox-arrow-right{right:12px}@media (max-width:640px){.lightbox-arrow{display:none}}.admin-page{min-height:100svh;background:var(--cream);display:flex;flex-direction:column}.admin-login{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 6vw 60px;text-align:center}.admin-lock-icon{width:60px;height:60px;border-radius:50%;background:#e9e4d8;display:grid;place-items:center;margin:0 auto 24px;color:var(--ink)}.admin-login h1{font-family:Playfair Display;font-size:28px;font-weight:400;margin:0 0 32px}.admin-login-form{width:100%;max-width:300px;display:flex;flex-direction:column;gap:20px}.admin-login-form label{text-align:left}.admin-login-form label span{display:block;font-size:9px;letter-spacing:1.3px;text-transform:uppercase;margin-bottom:8px;color:#8a8178}.admin-login-form input{width:100%;border:0;border-bottom:1px solid rgba(44,44,44,.3);background:transparent;padding:8px 0;font-size:14px;color:var(--ink);outline:none}.admin-login-form input:focus{border-color:var(--ink)}.admin-error{font-size:12px;color:#a05247;margin:0}.admin-main{flex:1;padding:100px 5vw 60px;max-width:960px;margin:0 auto;width:100%}.admin-main h1{font-family:Playfair Display;font-size:clamp(28px,5vw,42px);font-weight:400;margin:0 0 28px}.admin-feedback{display:flex;align-items:center;gap:8px;padding:12px 16px;margin-bottom:20px;font-size:12px;letter-spacing:.3px}.admin-feedback-ok{background:#e9e4d8;color:var(--ink)}.admin-feedback-err{background:#f5e6e4;color:#a05247}.admin-empty{font-size:14px;color:#8a8178}.admin-grid{display:flex;flex-direction:column;gap:8px}.admin-card{display:flex;align-items:center;gap:14px;padding:10px;background:var(--paper);transition:background .2s}.admin-card:hover{background:#f0ebe2}.admin-card-img{width:64px;height:64px;flex:none;overflow:hidden;background:#e9e4d8}.admin-card-img img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.admin-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.admin-card-name{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-card-date{font-size:11px;color:#8a8178}.admin-delete-btn{width:40px;height:40px;flex:none;display:grid;place-items:center;color:#a05247;opacity:.5;transition:opacity .2s}.admin-delete-btn:hover{opacity:1}.small-spinner{width:16px!important;height:16px!important;border-width:1.5px!important}.admin-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}.admin-confirm-modal{background:var(--cream);padding:28px;max-width:380px;width:100%;text-align:center}.admin-confirm-preview{width:100%;aspect-ratio:16/10;overflow:hidden;margin-bottom:20px;background:#e9e4d8}.admin-confirm-preview img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.admin-confirm-modal h3{font-family:Playfair Display;font-size:20px;font-weight:400;margin:0 0 8px}.admin-confirm-modal p{font-size:13px;color:#8a8178;margin:0 0 24px;line-height:1.6}.admin-confirm-actions{display:flex;gap:12px}.admin-confirm-actions .capture-btn{flex:1}.admin-danger-btn{background:#a05247!important;color:#fff!important;border-color:#a05247!important}.admin-danger-btn:hover{background:#8a3f36!important;border-color:#8a3f36!important}.admin-tabs{display:flex;gap:0;border-bottom:1px solid rgba(44,44,44,.15);margin-bottom:28px}.admin-tab{display:flex;align-items:center;gap:7px;padding:12px 20px;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#8a8178;border-bottom:2px solid transparent;transition:all .2s;background:none;cursor:pointer}.admin-tab:hover{color:var(--ink)}.admin-tab-active{color:var(--ink);border-bottom-color:var(--ink)}.admin-tab-content h2{font-family:Playfair Display;font-size:clamp(22px,4vw,32px);font-weight:400;margin:0 0 20px}.admin-guest-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:4px}.admin-guest-header h2{margin-bottom:0}.admin-csv-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:11px;letter-spacing:.8px;text-transform:uppercase;border:1px solid rgba(44,44,44,.25);background:transparent;color:var(--ink);cursor:pointer;transition:all .2s}.admin-csv-btn:hover{background:var(--ink);color:var(--cream)}.admin-guest-stats{display:flex;gap:12px;margin-bottom:24px;flex-wrap:wrap}.admin-stat{background:var(--paper);padding:14px 20px;flex:1;min-width:100px;display:flex;flex-direction:column;gap:2px}.admin-stat-number{font-family:Playfair Display;font-size:28px;font-weight:400;line-height:1}.admin-stat-label{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#8a8178}.admin-stat-yes .admin-stat-number{color:#5a7a5a}.admin-stat-no .admin-stat-number{color:#a05247}.admin-guest-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -5vw;padding:0 5vw}.admin-guest-table{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}.admin-guest-table th{text-align:left;font-size:9px;letter-spacing:1.3px;text-transform:uppercase;color:#8a8178;padding:10px 12px 10px 0;border-bottom:1px solid rgba(44,44,44,.15);font-weight:400;white-space:nowrap}.admin-guest-table td{padding:12px 12px 12px 0;border-bottom:1px solid rgba(44,44,44,.07);vertical-align:top}.admin-guest-table tr:hover td{background:#2c2c2c05}.admin-guest-name{font-weight:500;white-space:nowrap}.admin-guest-date{white-space:nowrap;color:#8a8178;font-size:12px}.admin-badge{display:inline-block;padding:3px 10px;font-size:11px;letter-spacing:.5px;border-radius:2px}.admin-badge-yes{background:#e8f0e8;color:#3d6b3d}.admin-badge-no{background:#f5e6e4;color:#a05247}.admin-badge-pending{background:#eae6de;color:#8a8178}.gallery-page .site-footer{margin-top:auto;background:#d9d3c8;color:var(--ink)}@keyframes float{0%,to{transform:translateY(0) rotate(-9deg)}50%{transform:translateY(-9px) rotate(-7deg)}}.sara{animation-name:floatSara}@keyframes floatSara{0%,to{transform:translateY(0) scale(.92) rotate(5deg)}50%{transform:translateY(-8px) scale(.92) rotate(3deg)}}.ceremony-section{position:relative;min-height:85vh;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;margin-top:-1px}.ceremony-image-full{position:absolute;top:0;right:0;bottom:0;left:0}.ceremony-image-full img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center 35%;object-position:center 35%;display:block;opacity:.3}.ceremony-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#2c2c2c;padding:80px 40px;width:100%;max-width:720px}.ceremony-block{text-align:center}.ceremony-content .eyebrow{font-weight:600;color:#2c2c2ca6;margin-bottom:16px}.ceremony-content h2{font-family:Playfair Display,serif;font-size:clamp(36px,6vw,56px);font-weight:600;margin:0 0 24px;letter-spacing:-.5px;color:#2c2c2c}.ceremony-divider{width:48px;height:1px;background:#2c2c2c40;margin:0 auto 32px}.ceremony-content h3{font-family:Playfair Display,serif;font-size:clamp(18px,2.5vw,22px);font-weight:600;margin:0 0 8px;color:#2c2c2c}.ceremony-content p{font-size:15px;line-height:1.6;font-weight:500;margin:0 0 6px;opacity:1;color:#3a3530}.ceremony-content strong{display:block;font-size:13px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;margin-top:20px;color:#2c2c2cd9}.ceremony-map-btn{display:inline-flex;align-items:center;gap:8px;margin-top:28px;padding:12px 28px;border:1px solid rgba(44,44,44,.35);font-size:10px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;color:#2c2c2c;transition:all .3s ease}.ceremony-map-btn:hover{background:#2c2c2c0f;border-color:#2c2c2c73}.dinnerparty-section{position:relative;min-height:85vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.dinnerparty-bg{position:absolute;top:0;right:0;bottom:0;left:0}.dinnerparty-bg img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;opacity:.3}.dinnerparty-content{position:relative;z-index:2;text-align:center;color:#2c2c2c;padding:100px 40px;max-width:560px;display:flex;flex-direction:column;align-items:center}.dinnerparty-seguire{font-family:Cormorant Garamond,serif;font-size:clamp(15px,2.5vw,18px);font-style:italic;font-weight:600;letter-spacing:2px;text-transform:lowercase;color:#2c2c2cb3;margin:0 0 12px}.dinnerparty-content h2{font-family:Playfair Display,serif;font-size:clamp(36px,6vw,56px);font-weight:600;margin:0 0 24px;letter-spacing:-.5px;color:#2c2c2c}.dinnerparty-divider{width:48px;height:1px;background:#2c2c2c40;margin:0 auto 28px}.dinnerparty-venue{font-family:Playfair Display,serif;font-size:clamp(18px,2.5vw,22px);font-weight:600;margin:0 0 6px;color:#2c2c2c}.dinnerparty-address{font-size:15px;line-height:1.6;font-weight:500;margin:0 0 6px;opacity:1;color:#3a3530}.dinnerparty-time{display:block;font-size:13px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;margin-top:20px;color:#2c2c2cd9}.dinnerparty-map-btn{display:inline-flex;align-items:center;gap:8px;margin-top:48px;padding:12px 28px;border:1px solid rgba(44,44,44,.35);font-size:10px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;color:#2c2c2c;transition:all .3s ease}.dinnerparty-map-btn:hover{background:#2c2c2c0f;border-color:#2c2c2c73}@media (max-width: 780px){.site-header{height:72px;padding:0 6vw;position:fixed;background:var(--cream);z-index:50}.main-nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--paper);padding:25px 6vw;flex-direction:column;gap:20px;border-bottom:1px solid var(--line);margin:0}.main-nav.is-open{display:flex}.main-nav button{text-align:left;font-size:11px}.mobile-menu{display:block}.hero{min-height:760px}.hero-watermark{top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:.3;background-position:40% center;background-size:cover}.hero-copy{transform:translateY(-180px)}.hero-names-img{width:clamp(320px,75vw,500px)}.hero-date-bottom{bottom:110px;font-size:clamp(14px,3.5vw,20px)}.hero-stamp{left:6%;bottom:7%;transform:scale(.8) rotate(-13deg)}.section-pad{padding:88px 7vw}.details-section,.photo-live-section{padding-left:24px;padding-right:24px}.dinnerparty-content{padding:80px 7vw}.envelope-top{height:140px}.rsvp-content{padding-top:40px}.form-row{gap:15px}.island-scene{height:330px;margin-top:55px}.giulio{left:19%;transform:scale(.75) rotate(-9deg)}.sara{right:17%;transform:scale(.7) rotate(5deg)}.palm-left{left:7%}.palm-right{right:5%}.active-photo{width:84vw;height:57vw;min-height:240px}.slider-arrow{width:42px;height:42px;margin:0 8px}.photo-caption{left:17px;bottom:17px}.photo-caption span{font-size:18px}.photo-thumbnails{margin-top:45px}.travel-iban-cta{position:absolute;bottom:12px;left:0;right:0;margin:0;display:flex;justify-content:center}.site-footer{padding:25px 6vw;font-size:8px}.site-footer a{display:none}}@media (max-width: 420px){.hero h1{font-size:55px}.detail-card{padding:55px 22px 40px}.form-row{display:block}.active-photo{min-height:230px}.slider-arrow{margin:0 4px}.photo-title{margin-bottom:38px}}
