:root{--art-deco-blue:#002347;--art-deco-gold:#c5a059;--art-deco-gold-light:#fcf6ba;--art-deco-gold-dark:#aa771c;--white:#fff;--slate-800:#1e293b;--slate-600:#475569;--slate-400:#94a3b8;--slate-200:#e2e8f0;--slate-100:#f1f5f9;--slate-50:#f8fafc}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--white);color:var(--slate-800);font-family:Montserrat,sans-serif;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4,.art-deco-font{letter-spacing:.1em;text-transform:uppercase;font-family:Marcellus,serif}.container{width:100%;max-width:1024px;margin:0 auto;padding:0 1.5rem}.gold-gradient{background:linear-gradient(45deg,#bf953f,#fcf6ba,#b38728,#fbf5b7,#aa771c);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.bg-art-deco-blue{background-color:var(--art-deco-blue)}.text-art-deco-gold{color:var(--art-deco-gold)}.bg-art-deco-gold{background-color:var(--art-deco-gold)}.border-art-deco-gold{border-color:var(--art-deco-gold)}nav{z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background-color:#fffc;border-bottom:1px solid #c5a0594d;justify-content:flex-end;gap:1rem;width:100%;padding:.75rem 1.5rem;display:flex;position:fixed;top:0}nav button{cursor:pointer;text-transform:uppercase;letter-spacing:.15em;color:var(--slate-400);background:0 0;border:none;padding:.5rem 0;font-size:.75rem;font-weight:600;transition:color .3s}nav button.active{color:var(--art-deco-gold);border-bottom:2px solid var(--art-deco-gold)}nav button:hover:not(.active){color:var(--slate-600)}header{background-color:var(--art-deco-blue);width:100%;min-height:100vh;color:var(--white);flex-direction:column;justify-content:center;align-items:center;padding-top:4rem;display:flex;position:relative;overflow:hidden}.gallery-unlocked header{height:100px;min-height:100px;padding-top:0}.gallery-unlocked .hero-content,.gallery-unlocked .hero-ornaments,.gallery-unlocked .scroll-indicator{display:none}.gallery-unlocked .hero-bg img{filter:none;opacity:.55}.hero-bg{z-index:0;position:absolute;inset:0}.hero-bg img{object-fit:cover;object-position:top;opacity:.4;filter:blur(2px);width:100%;height:100%;transform:scale(1.05)}.hero-gradient{background:linear-gradient(to bottom, #002347cc, transparent, var(--art-deco-blue));position:absolute;inset:0}.hero-ornaments{pointer-events:none;opacity:.3;z-index:10;position:absolute;inset:0}.ornament-corner-tl{border-right:1px solid var(--art-deco-gold);border-bottom:1px solid var(--art-deco-gold);width:16rem;height:16rem;position:absolute;top:0;left:0;transform:rotate(45deg)translate(-50%,-50%)}.ornament-corner-br{border-left:1px solid var(--art-deco-gold);border-top:1px solid var(--art-deco-gold);width:24rem;height:24rem;position:absolute;bottom:0;right:0;transform:rotate(45deg)translate(50%,50%)}.hero-content{z-index:20;text-align:center;max-width:56rem;padding:1rem;position:relative}.hero-date-wrapper{border-top:1px solid var(--art-deco-gold);border-bottom:1px solid var(--art-deco-gold);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#00234766;width:100%;margin-bottom:1.5rem;padding:.5rem 2rem}.hero-date-wrapper p{letter-spacing:.5em;color:var(--art-deco-gold);text-transform:uppercase;font-size:.875rem}.hero-content h1{filter:drop-shadow(0 25px 25px #00000080);margin-bottom:1rem;font-size:3.75rem}.hero-content h2{letter-spacing:.2em;filter:drop-shadow(0 4px 6px #00000080);margin-bottom:3rem;font-size:1.25rem;font-weight:300}@media (width>=768px){.hero-content h1{font-size:8rem}.hero-content h2{font-size:1.875rem}}.btn-rsvp{border:2px solid var(--art-deco-gold);color:var(--art-deco-gold);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);letter-spacing:.1em;text-transform:uppercase;background-color:#00234733;padding:1rem 2.5rem;font-weight:700;text-decoration:none;transition:all .3s;display:inline-block}.btn-rsvp:hover{background-color:var(--art-deco-gold);color:var(--white)}.scroll-indicator{z-index:20;animation:2s infinite bounce;position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%)}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)translate(-50%)}40%{transform:translateY(-10px)translate(-50%)}60%{transform:translateY(-5px)translate(-50%)}}main{padding:3rem 0}section{margin-bottom:4rem}.grid-2{grid-template-columns:1fr;align-items:center;gap:3rem;display:grid}.pre-login-image-section{justify-content:center;margin-bottom:4rem;display:flex}#pre-login-image-section[hidden]{display:none!important}.pre-login-image-section .deco-border{width:100%;max-width:32rem;margin:0}@media (width>=768px){.grid-2{grid-template-columns:1fr 1fr}}.section-title{color:var(--art-deco-blue);align-items:center;gap:1rem;margin-bottom:1.5rem;font-size:1.875rem;display:flex}.section-title span{background-color:var(--art-deco-gold);width:3rem;height:2px}.about-text{color:var(--slate-600);white-space:pre-line;font-size:1.125rem;font-weight:300}.deco-border{border:2px solid var(--art-deco-gold);background-color:var(--white);z-index:1;margin:25px 0 0;padding:2rem;position:relative;box-shadow:0 20px 25px -5px #0000001a}.deco-border:after{content:"";background-color:var(--art-deco-blue);z-index:-1;width:6rem;height:6rem;position:absolute;bottom:-1rem;right:-1rem}.img-container{aspect-ratio:4/5;overflow:hidden}.img-container img{object-fit:cover;width:100%;height:100%;transition:transform .7s}.img-container:hover img{transform:scale(1.1)}.info-card{border:1px solid var(--slate-100);background-color:var(--slate-50);border-radius:2px;padding:2.5rem;position:relative;overflow:hidden}.info-section-full{display:none}.info-card:before{content:"";background-color:var(--art-deco-gold);transform-origin:top;width:4px;height:100%;transition:transform .3s;position:absolute;top:0;left:0;transform:scaleY(0)}.info-card:hover:before{transform:scaleY(1)}.info-card h3{color:var(--art-deco-blue);border-bottom:1px solid var(--art-deco-gold);margin-bottom:1.5rem;padding-bottom:.5rem;font-size:1.5rem;display:inline-block}.info-card p{color:var(--slate-600);margin-bottom:1.5rem}.map-link{color:var(--art-deco-gold);letter-spacing:.1em;font-size:.875rem;font-weight:600;text-decoration:none}.map-link:hover{text-decoration:underline}.gallery-section{margin:5rem 0}.gallery-heading{margin-bottom:2rem}.gallery-heading p{color:var(--slate-600);font-weight:300}.gallery-add-link{border-bottom:1px solid var(--art-deco-gold);color:var(--art-deco-blue);letter-spacing:.12em;text-transform:uppercase;margin-top:.75rem;padding-bottom:.25rem;font-size:.75rem;font-weight:700;text-decoration:none;display:inline-block}.gallery-add-link:before{color:var(--art-deco-gold);content:"+ "}.gallery-add-link:hover,.gallery-add-link:focus-visible{color:var(--art-deco-gold-dark);outline:none}.gallery-access{border:1px solid var(--slate-100);border-left:4px solid var(--art-deco-gold);background:var(--slate-50);max-width:38rem;margin:0 auto;padding:2rem}.gallery-access>p{color:var(--slate-600);margin-bottom:1.5rem;font-weight:300}.gallery-password-form label{color:var(--art-deco-blue);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.5rem;font-size:.75rem;font-weight:700;display:block}.gallery-password-row{gap:.75rem;display:flex}.gallery-password-row input{border:1px solid var(--slate-200);min-width:0;font:inherit;letter-spacing:.16em;flex:1;padding:.8rem 1rem;font-size:1.35rem}.gallery-password-row button{background:var(--art-deco-blue);color:var(--white);cursor:pointer;font:inherit;letter-spacing:.1em;text-transform:uppercase;border:0;padding:.8rem 1.1rem;font-size:.75rem;font-weight:700}.gallery-password-row button:hover,.gallery-password-row button:focus-visible{background:var(--art-deco-gold);outline:none}.gallery-password-status{color:#b91c1c;min-height:1.25rem;margin-top:.75rem;font-size:.875rem;font-weight:600}@media (width<=480px){.gallery-access{padding:1.5rem}.gallery-password-row{flex-direction:column}}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.guest-gallery{border-top:1px solid var(--slate-200);margin-top:4rem;padding-top:4rem}.guest-upload-form{background:var(--slate-50);border-left:4px solid var(--art-deco-gold);margin-bottom:2rem;padding:1.25rem}.guest-upload-modal{z-index:110;background:#001224d6;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.guest-upload-modal[hidden]{display:none}.guest-upload-modal__content{background:var(--white);width:100%;max-width:38rem;padding:2.5rem;position:relative;box-shadow:0 1.5rem 4rem #00000059}.guest-upload-modal__content h4{color:var(--art-deco-blue);margin-bottom:1.5rem;font-size:1.35rem}.guest-upload-modal__close{color:var(--art-deco-blue);cursor:pointer;background:0 0;border:0;padding:.25rem;font-size:2rem;line-height:1;position:absolute;top:.75rem;right:.75rem}.guest-upload-modal__close:hover,.guest-upload-modal__close:focus-visible{color:var(--art-deco-gold-dark);outline:none}.guest-upload-form>label{color:var(--art-deco-blue);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.5rem;font-size:.75rem;font-weight:700;display:block}.guest-uploader-name{border:1px solid var(--slate-200);font:inherit;width:100%;margin-bottom:1rem;padding:.8rem 1rem}.guest-upload-row{align-items:center;gap:.75rem;display:flex}.guest-upload-row input{flex:1;min-width:0}.guest-upload-row button{background:var(--art-deco-blue);color:var(--white);cursor:pointer;font:inherit;letter-spacing:.1em;text-transform:uppercase;border:0;padding:.8rem 1.1rem;font-size:.75rem;font-weight:700}.guest-upload-row button:hover,.guest-upload-row button:focus-visible{background:var(--art-deco-gold);outline:none}.guest-upload-status{color:var(--slate-600);min-height:1.25rem;margin-top:.75rem;font-size:.875rem}.guest-upload-status.is-error{color:#b91c1c;font-weight:600}@media (width<=480px){.guest-upload-row{flex-direction:column;align-items:stretch}}.gallery-item{appearance:none;background:var(--slate-100);cursor:zoom-in;aspect-ratio:1;border:0;padding:0;position:relative;overflow:hidden}.gallery-item__caption{color:var(--white);letter-spacing:.04em;text-align:left;background:#002347d9;padding:.45rem .6rem;font-size:.7rem;font-weight:600;position:absolute;bottom:0;left:0;right:0}.gallery-item:focus-visible{outline:3px solid var(--art-deco-gold);outline-offset:3px}.gallery-item img{object-fit:cover;width:100%;height:100%;transition:transform .45s,opacity .25s;display:block}.gallery-item:hover img{transform:scale(1.06)}.gallery-lightbox{z-index:100;background:#001224ed;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0;overflow:auto}.gallery-lightbox[hidden]{display:none}.gallery-lightbox__image-wrap{max-width:min(92vw,1400px);max-height:86vh;position:relative}.gallery-lightbox__image{object-fit:contain;transform-origin:50%;max-width:min(92vw,1400px);max-height:86vh;transition:transform .2s;display:block;box-shadow:0 1rem 4rem #00000080}.gallery-lightbox__zoom{background:#002347cc;border:1px solid #ffffff8c;display:flex;position:absolute;bottom:.75rem;right:.75rem;overflow:hidden}.gallery-lightbox__zoom button{min-width:2.5rem;height:2.4rem;color:var(--white);cursor:pointer;background:0 0;border:0;border-right:1px solid #ffffff59;font-size:1rem}.gallery-lightbox__zoom button:last-child{border-right:0}.gallery-lightbox__zoom button:hover:not(:disabled),.gallery-lightbox__zoom button:focus-visible{background:var(--art-deco-gold);outline:none}.gallery-lightbox__zoom button:disabled{cursor:default;opacity:.5}.gallery-lightbox__button{color:var(--white);cursor:pointer;background:#002347ad;border:1px solid #ffffff8c;width:2.8rem;height:2.8rem;font-size:1.8rem;line-height:1;position:absolute}.gallery-lightbox__button:hover,.gallery-lightbox__button:focus-visible{background:var(--art-deco-gold);outline:none}.gallery-lightbox__close{top:1rem;right:1rem}.gallery-lightbox__previous{left:1rem}.gallery-lightbox__next{right:1rem}.thank-you-image-section{margin:4rem auto}.thank-you-image-section .rsvp-image-wrapper{margin-bottom:0}@media (width>=640px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=900px){.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}}.rsvp-section{background-color:var(--art-deco-blue);color:var(--white);border-radius:2px;padding:3rem 1.5rem;position:relative;overflow:hidden;box-shadow:0 25px 50px -12px #00000080}@media (width>=768px){.rsvp-section{padding:5rem}}.rsvp-ornament{opacity:.1;pointer-events:none;width:12rem;height:12rem;position:absolute;top:0;right:0}.rsvp-image-wrapper{border:2px solid var(--art-deco-gold);aspect-ratio:1;max-width:25rem;margin:0 auto 3rem;position:relative;box-shadow:0 20px 50px #00000080}.rsvp-image-wrapper img{object-fit:cover;opacity:.9;width:100%;height:100%}.rsvp-header{text-align:center;margin-bottom:4rem}.rsvp-header h3{margin-bottom:1rem;font-size:2.25rem}.rsvp-header .divider{background-color:var(--art-deco-gold);width:6rem;height:4px;margin:0 auto}.form-group{max-width:48rem;margin-bottom:2.5rem;margin-left:auto;margin-right:auto}.attendance-box{background-color:#ffffff1a;border:1px solid #ffffff1a;border-radius:2px;padding:1.5rem}.attendance-box p{text-transform:uppercase;letter-spacing:.2em;color:var(--art-deco-gold);margin-bottom:1rem;font-size:.875rem;font-weight:700}.radio-group{flex-direction:column;gap:1rem;display:flex}.radio-label{cursor:pointer;text-transform:uppercase;letter-spacing:.1em;align-items:center;gap:.75rem;font-weight:600;transition:color .3s;display:flex}.radio-label:hover{color:var(--art-deco-gold)}.radio-label input{accent-color:var(--art-deco-gold);width:1.5rem;height:1.5rem}.guest-item{background-color:#ffffff0d;border:1px solid #ffffff1a;border-radius:2px;margin-bottom:2rem;padding:1.5rem}.guest-header{border-bottom:1px solid #c5a0594d;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:.5rem;display:flex}.guest-label{text-transform:uppercase;letter-spacing:.2em;color:var(--art-deco-gold);font-size:.75rem;font-weight:700}.btn-remove{color:#f87171;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;background:0 0;border:none;font-size:.75rem}.input-field{width:100%;color:var(--white);background:0 0;border:none;border-bottom:2px solid #fff3;outline:none;margin-bottom:1.5rem;padding:.5rem 0;font-family:inherit;transition:border-color .3s}.input-field:focus{border-color:var(--art-deco-gold)}.input-field::placeholder{color:#fff3}.textarea-field{resize:none}.btn-add{width:100%;color:var(--art-deco-gold);text-transform:uppercase;letter-spacing:.1em;cursor:pointer;background:0 0;border:2px dashed #c5a0594d;margin-bottom:2rem;padding:1rem;font-weight:700;transition:background .3s}.btn-add:hover{background-color:#c5a0591a}.accommodation-box{border-top:1px solid #ffffff1a;padding-top:2rem}.toggle-wrapper{flex-direction:column;gap:1.5rem;display:flex}@media (width>=768px){.toggle-wrapper{flex-direction:row;justify-content:space-between;align-items:center}}.toggle-label{cursor:pointer;text-transform:uppercase;align-items:center;gap:1rem;font-size:.875rem;font-weight:600;display:flex}.toggle-switch{width:3rem;height:1.5rem;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;background-color:#ffffff1a;border:1px solid #fff3;border-radius:34px;transition:all .4s;position:absolute;inset:0}.slider:before{content:"";background-color:#fff;border-radius:50%;width:1rem;height:1rem;transition:all .4s;position:absolute;bottom:3px;left:3px}input:checked+.slider{background-color:var(--art-deco-gold)}input:checked+.slider:before{transform:translate(1.5rem)}.count-input{align-items:center;gap:1rem;display:flex}.count-input input{border:none;border-bottom:2px solid var(--art-deco-gold);width:5rem;color:var(--white);text-align:center;background-color:#ffffff0d;padding:.25rem;font-weight:700}.form-footer{flex-direction:column;align-items:center;padding-top:2rem;display:flex}.btn-submit{background-color:var(--art-deco-gold);color:var(--white);letter-spacing:.3em;text-transform:uppercase;cursor:pointer;border:none;padding:1.25rem 4rem;font-weight:700;transition:all .3s;box-shadow:0 10px 15px -3px #0000004d}.btn-submit:hover{transform:scale(1.05)}.btn-submit:disabled{opacity:.5;cursor:not-allowed}.error-msg{color:#f87171;margin-bottom:1rem;font-size:.875rem;font-weight:600}.success-container{text-align:center;padding:5rem 0}.success-container .icon{color:var(--art-deco-gold);margin-bottom:1.5rem;font-size:4rem}.success-container h4{margin-bottom:1.5rem;font-size:1.5rem}.btn-back{color:var(--art-deco-gold);text-underline-offset:4px;text-transform:uppercase;cursor:pointer;background:0 0;border:none;font-size:.875rem;font-weight:700;text-decoration:underline}.sms-info{text-align:center;border-top:1px solid #c5a05933;margin-top:4rem;padding-top:3rem}.sms-divider{color:#c5a05999;justify-content:center;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.sms-divider .line{background-color:currentColor;width:2rem;height:1px}.sms-text-1{text-transform:uppercase;letter-spacing:.1em;color:#fffc;margin-bottom:.25rem;font-size:.875rem}.sms-text-2{color:var(--art-deco-gold);letter-spacing:.2em;text-transform:uppercase;font-size:1.125rem;font-weight:700}footer{background-color:var(--white);border-top:1px solid var(--slate-100);flex-direction:column;justify-content:center;align-items:center;gap:1rem;width:100%;padding:4rem 0;display:flex}.footer-logo{color:var(--art-deco-gold);font-family:serif;font-size:2.25rem}.footer-text{color:var(--slate-400);letter-spacing:.5em;text-transform:uppercase;font-size:.75rem}.footer-dots{gap:1rem;margin-top:1rem;display:flex}.dot{border-radius:50%;width:.5rem;height:.5rem}.dot-gold{background-color:var(--art-deco-gold)}.dot-blue{background-color:var(--art-deco-blue)}.dot-line{background-color:#c5a0594d;align-self:center;width:2rem;height:1px}.hidden{display:none!important}.animate-fade-in{animation:.5s forwards fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
