@import"https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap";:root{--font-family: "Montserrat", sans-serif;--bg-white: #0a0a14;--bg-pastel-blue: #12121f;--border-pastel-blue: #1e3a3b;--text-dark: #e8e8f0;--text-light: #c8c8d8;--text-secondary: #007175;--primary-color: #007175;--primary-dark: #005b5e;--input-bg: #1e1e30;--input-border: #2e2e4a;--placeholder-color: #6b7280;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4);--transition-fast: .2s ease-in-out;--transition-normal: .3s ease-in-out}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-white);color:var(--text-dark);min-height:100vh;display:flex;flex-direction:column;line-height:1.6;overflow-x:hidden;position:relative}body:before,body:after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}body:before{background-image:radial-gradient(2px 2px at 10% 15%,rgba(255,255,255,.9) 0%,transparent 100%),radial-gradient(2px 2px at 22% 40%,rgba(255,255,255,.85) 0%,transparent 100%),radial-gradient(2px 2px at 35% 8%,rgba(255,255,255,.95) 0%,transparent 100%),radial-gradient(2px 2px at 48% 60%,rgba(255,255,255,.8) 0%,transparent 100%),radial-gradient(2px 2px at 60% 25%,rgba(255,255,255,.9) 0%,transparent 100%),radial-gradient(2px 2px at 72% 78%,rgba(255,255,255,.85) 0%,transparent 100%),radial-gradient(2px 2px at 85% 12%,rgba(255,255,255,.95) 0%,transparent 100%),radial-gradient(2px 2px at 92% 50%,rgba(255,255,255,.8) 0%,transparent 100%),radial-gradient(2px 2px at 5% 88%,rgba(255,255,255,.9) 0%,transparent 100%),radial-gradient(2px 2px at 15% 65%,rgba(255,255,255,.8) 0%,transparent 100%),radial-gradient(2px 2px at 30% 90%,rgba(255,255,255,.85) 0%,transparent 100%),radial-gradient(2px 2px at 55% 35%,rgba(255,255,255,.9) 0%,transparent 100%),radial-gradient(2px 2px at 78% 55%,rgba(255,255,255,.8) 0%,transparent 100%),radial-gradient(2px 2px at 95% 30%,rgba(255,255,255,.95) 0%,transparent 100%),radial-gradient(2px 2px at 42% 80%,rgba(255,255,255,.8) 0%,transparent 100%),radial-gradient(2.5px 2.5px at 68% 5%,rgba(255,255,255,.95) 0%,transparent 100%),radial-gradient(2px 2px at 88% 90%,rgba(255,255,255,.85) 0%,transparent 100%),radial-gradient(2px 2px at 3% 45%,rgba(255,255,255,.85) 0%,transparent 100%),radial-gradient(2px 2px at 25% 20%,rgba(200,220,255,.9) 0%,transparent 100%),radial-gradient(2px 2px at 50% 50%,rgba(200,220,255,.85) 0%,transparent 100%),radial-gradient(2px 2px at 17% 72%,rgba(255,255,255,.85) 0%,transparent 100%),radial-gradient(2px 2px at 63% 48%,rgba(255,255,255,.8) 0%,transparent 100%),radial-gradient(2px 2px at 37% 33%,rgba(200,220,255,.9) 0%,transparent 100%),radial-gradient(2px 2px at 82% 67%,rgba(255,255,255,.85) 0%,transparent 100%);animation:twinkle-1 4s ease-in-out infinite 1s}body:after{background-image:radial-gradient(3px 3px at 18% 30%,rgba(255,255,255,1) 0%,transparent 100%),radial-gradient(4px 4px at 40% 70%,rgba(255,255,255,.95) 0%,transparent 100%),radial-gradient(3px 3px at 62% 18%,rgba(255,255,255,1) 0%,transparent 100%),radial-gradient(4px 4px at 80% 40%,rgba(200,220,255,.95) 0%,transparent 100%),radial-gradient(3px 3px at 92% 75%,rgba(255,255,255,1) 0%,transparent 100%),radial-gradient(3px 3px at 7% 55%,rgba(255,255,255,.9) 0%,transparent 100%),radial-gradient(4px 4px at 52% 92%,rgba(200,220,255,.9) 0%,transparent 100%),radial-gradient(3px 3px at 75% 10%,rgba(255,255,255,1) 0%,transparent 100%),radial-gradient(3px 3px at 28% 58%,rgba(255,255,255,.95) 0%,transparent 100%),radial-gradient(4px 4px at 45% 22%,rgba(200,220,255,.9) 0%,transparent 100%);animation:twinkle-2 5s ease-in-out infinite}@keyframes twinkle-1{0%,to{opacity:.15;filter:brightness(1) drop-shadow(0 0 0px transparent)}30%{opacity:1;filter:brightness(1.5) drop-shadow(0 0 6px rgba(255,255,255,.9))}70%{opacity:.3;filter:brightness(1) drop-shadow(0 0 0px transparent)}}@keyframes twinkle-2{0%,to{opacity:.2;filter:brightness(1) drop-shadow(0 0 0px transparent)}50%{opacity:1;filter:brightness(1.8) drop-shadow(0 0 10px rgba(255,255,255,1))}80%{opacity:.25;filter:brightness(1) drop-shadow(0 0 0px transparent)}}#root{min-height:100vh;display:flex;flex-direction:column;width:100%}main{flex:1;display:flex;flex-direction:column;width:100%;padding:0}.full-width-section{width:100%;padding:5rem 2rem;display:flex;justify-content:center;align-items:center;position:relative;z-index:1}.full-width-section.white{background-color:#0a0a14d1;color:var(--text-dark)}.full-width-section.pastel{background-color:#12121fe0;color:var(--text-light)}.full-width-section.py-title{padding:3.5rem 2rem 2rem}.full-width-section.py-countdown{padding:3rem 2rem 4rem}.full-width-section.py-banner,.full-width-section.py-details{padding:4.5rem 2rem}.full-width-section.py-rsvp{padding:5rem 2rem}.invitation-view-page{position:relative;min-height:100vh}.background-moon{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:50vw;max-width:500px;min-width:300px;aspect-ratio:1/1;border-radius:50%;opacity:.15;pointer-events:none;z-index:2;box-shadow:0 0 60px #c8dcff26,0 0 100px #c8dcff14;filter:brightness(.85) contrast(1.1)}.section-content{width:100%;max-width:800px;margin:0 auto;text-align:center}.subtle-app-title{font-size:2rem;font-weight:500;color:var(--primary-color);text-transform:uppercase;letter-spacing:.35em}.header-cover-img{width:100%;max-width:800px;height:auto;max-height:480px;object-fit:cover;border-radius:4px}.special-invitation-banner{border-top:1px solid rgba(255,255,255,.45);border-bottom:1px solid rgba(255,255,255,.45);padding:2.5rem 1rem;max-width:600px;margin:0 auto}.special-invitation-banner p{font-size:1.25rem;font-weight:400;text-transform:uppercase;letter-spacing:.15em;color:var(--text-light);line-height:1.8}.countdown-container-modern{max-width:500px;margin:0 auto}.countdown-numbers-row{display:flex;justify-content:center;align-items:center;gap:1.5rem}.countdown-col{display:flex;flex-direction:column;align-items:center;min-width:80px}.countdown-col .val{font-size:3.25rem;font-weight:300;color:var(--primary-color);line-height:1.1}.countdown-col .lbl{font-size:.65rem;font-weight:500;color:var(--text-secondary);margin-top:.6rem;letter-spacing:.15em}.col-sep{font-size:2rem;color:var(--primary-color);font-weight:300;align-self:center;margin-top:-1.2rem}.details-box{display:flex;flex-direction:column;align-items:center;justify-content:center}.icon-wrapper{margin-bottom:1.5rem;display:flex;align-items:center;justify-content:center}.icon-svg{width:48px;height:48px;color:var(--text-light)}.icon-svg.color-blue{color:var(--primary-color)}.details-box h2{font-size:1.25rem;font-weight:700;letter-spacing:.15em;margin-bottom:1.25rem}.pastel .details-box h2{color:var(--text-light)}.white .details-box h2.color-blue{color:var(--primary-color)}.detail-value{font-size:1.1rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase}.pastel .detail-value{color:var(--text-light)}.white .detail-value.text-dark{color:var(--text-dark)}.detail-value-hour{font-size:1rem;font-weight:400;letter-spacing:.05em;margin-top:.25rem;color:var(--text-light)}.detail-subvalue{font-size:1rem;color:var(--text-secondary);margin-top:.25rem;text-transform:uppercase;letter-spacing:.05em}.detail-value-dc{font-size:1rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary)}.dc-bottom-line{width:100px;height:1px;background-color:var(--primary-color);margin-top:1.5rem}.border-bottom-line{border-bottom:1px solid rgba(0,113,117,.2)}.rsvp-container{width:100%;max-width:600px;margin:0 auto;text-align:left}.rsvp-container h3{font-size:1.5rem;font-weight:700;color:var(--text-light);margin-bottom:2.5rem;text-align:center;letter-spacing:.15em;text-transform:uppercase}.guests-list{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.guest-item-card{background-color:#ffffff0d;border:1px solid rgba(255,255,255,.25);padding:1.5rem;border-radius:4px}.guest-item-card h4{font-size:.85rem;font-weight:700;color:var(--text-light);margin-bottom:1.25rem;text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:.5rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-size:.8rem;font-weight:600;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.08em}.white .form-group label{color:var(--primary-color)}.pastel .form-group label{color:var(--text-light)}.input-control{width:100%;padding:.85rem 1.15rem;background:var(--input-bg);border:1px solid var(--input-border);border-radius:4px;color:var(--text-dark);font-family:var(--font-family);font-size:1rem;transition:var(--transition-fast)}.input-control::placeholder{color:var(--placeholder-color);opacity:1}.input-control:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #00717533}.pastel .input-control{background:#ffffff0d;border:1px solid rgba(255,255,255,.15);color:var(--text-dark)}.pastel .input-control::placeholder{color:var(--placeholder-color)}.pastel .input-control:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #00717540}.pastel .input-control option{background-color:#1e1e30;color:var(--text-dark)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:1rem 2rem;font-family:var(--font-family);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;border-radius:4px;transition:var(--transition-normal);width:100%}.white .btn{background-color:var(--primary-color);color:var(--bg-white);border:1px solid var(--primary-color)}.white .btn:hover{background-color:transparent;color:var(--primary-color)}.pastel .btn{background-color:transparent;color:var(--text-light);border:1px solid var(--text-light)}.pastel .btn:hover{background-color:var(--bg-white);color:var(--primary-color)}.btn:disabled{opacity:.5;cursor:not-allowed}.form-row{display:flex;gap:1rem}.form-row .col{flex:1}@media (max-width: 600px){.form-row{flex-direction:column;gap:0}.countdown-numbers-row{gap:.5rem}.countdown-col{min-width:55px}.countdown-col .val{font-size:2.25rem}.col-sep{font-size:1.5rem;margin-top:-.8rem}}.rsvp-success{border:1px solid var(--bg-white);background-color:#ffffff26;padding:2.5rem 1.5rem;text-align:center;border-radius:4px}.rsvp-success h3{color:var(--text-light);font-size:1.5rem;font-weight:700;margin-bottom:.75rem}.rsvp-success p{color:var(--text-light);opacity:.9;font-size:1.05rem}.form-main-container{flex:1;display:flex;align-items:center;justify-content:center;padding:5rem 1rem;background-color:#f0ebe7;width:100%}.glass-card{background-color:var(--bg-white);border:1px solid var(--border-pastel-blue);padding:3rem 2rem;max-width:540px;width:100%;box-shadow:var(--shadow-md);text-align:center;border-radius:4px}.glass-card h1{font-size:2.25rem;font-weight:800;color:var(--primary-color);margin-bottom:.5rem}.glass-card .subtitle{color:var(--text-secondary);font-size:.95rem;margin-bottom:2rem}.glass-card .form-group label{color:var(--primary-color)}.result-box{margin-top:2rem;padding:1.75rem;border:1px solid var(--border-pastel-blue);background-color:#fcfbf9;text-align:center;border-radius:4px}.link-display{background:var(--bg-white);padding:.85rem;border:1px solid var(--border-pastel-blue);font-size:.9rem;color:var(--primary-color);word-break:break-all;margin:1.25rem 0}.share-actions{display:flex;flex-direction:column;gap:.75rem;max-width:360px;margin:1.25rem auto 0}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:var(--primary-color);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}footer{text-align:center;padding:2.5rem 1rem;font-size:.85rem;color:var(--text-secondary);border-top:1px solid rgba(0,0,0,.05);background-color:var(--bg-white)}.error-banner{background-color:#fee2e2;border:1px solid #fca5a5;color:#991b1b;padding:.85rem;border-radius:4px;margin-bottom:1.5rem;font-size:.9rem;text-align:center}.audio-fab{position:fixed;bottom:1.5rem;right:1.5rem;z-index:1000;width:52px;height:52px;border-radius:50%;border:none;background:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 18px #00717573;transition:background .25s ease,transform .2s ease,box-shadow .25s ease;outline:none}.audio-fab:hover{background:var(--primary-dark, #005b5e);transform:scale(1.08);box-shadow:0 6px 24px #0071758c}.audio-fab:active{transform:scale(.96)}.audio-fab--playing{animation:audio-pulse 2.5s ease-in-out infinite}@keyframes audio-pulse{0%,to{box-shadow:0 4px 18px #00717573}50%{box-shadow:0 4px 28px #007175bf,0 0 0 6px #0071751f}}.splash-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background-color:#0a0a14;display:flex;align-items:center;justify-content:center;transition:opacity .6s ease;opacity:1}.splash-screen--fade{opacity:0;pointer-events:none}.splash-content{display:flex;flex-direction:column;align-items:center;gap:1.2rem;padding:2rem;text-align:center;max-width:520px;width:100%;animation:splash-in .8s ease both}@keyframes splash-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.splash-moon-img{width:180px;height:180px;border-radius:50%;opacity:.9;margin-bottom:.6rem;box-shadow:0 0 30px #c8dcff40,0 0 60px #c8dcff1f,0 0 4px #ffffff4d;filter:brightness(.85) contrast(1.1)}.splash-subtitle{font-size:.7rem;font-weight:400;letter-spacing:.22em;color:#6b7280;text-transform:uppercase;margin-bottom:-.5rem}.splash-title{font-size:2.4rem;font-weight:300;letter-spacing:.3em;color:#e8e8f0;text-transform:uppercase;line-height:1.2}.splash-tagline{font-size:.72rem;font-weight:400;letter-spacing:.18em;color:#6b7280;text-transform:uppercase;max-width:380px;line-height:1.8}.splash-enter-btn{margin-top:.8rem;padding:.75rem 2.8rem;background:transparent;border:1.5px solid var(--primary-color);color:#c8c8d8;font-family:var(--font-family);font-size:.78rem;font-weight:500;letter-spacing:.25em;text-transform:uppercase;cursor:pointer;transition:background .25s ease,color .25s ease,border-color .25s ease}.splash-enter-btn:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;margin-top:2rem}@media (min-width: 768px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.5rem}}.albums-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;max-width:1200px;margin:0 auto}@media (min-width: 600px){.albums-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2rem}}.album-card{cursor:pointer;transition:transform .2s ease;display:flex;flex-direction:column}.album-card:hover{transform:translateY(-5px)}.album-cover-container{width:100%;aspect-ratio:1 / 1;border-radius:12px;overflow:hidden;box-shadow:0 4px 10px #0006;background-color:#1e1e30;margin-bottom:.75rem}.album-cover{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.album-card:hover .album-cover{transform:scale(1.05)}.album-title{color:#e8e8f0;font-family:Montserrat,sans-serif;font-size:1.1rem;font-weight:500;margin:0 0 .25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.album-subtitle{color:#a0a0a0;font-size:.9rem;margin:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.route-loader{min-height:70vh;display:grid;place-items:center;color:var(--text-light);letter-spacing:.12em}.photo-upload-section{margin:2rem 0;text-align:center}.photo-upload-section--compact{width:100%;margin:0;padding:1.5rem;border:1px solid rgba(0,113,117,.5);border-radius:18px;background:#0a0a14c7;box-shadow:0 24px 60px #00000052;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.photo-upload-icon{margin:0 auto 1rem}.photo-upload-title{margin-bottom:1.5rem;font-family:var(--font-family)}.photo-upload-description{max-width:400px;margin:0 auto 2rem;color:var(--text-dark)}.photo-upload-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem}.photo-action{min-height:46px;padding:.75rem 1.35rem;border:1px solid var(--primary-color);border-radius:6px;font-family:var(--font-family);font-size:.78rem;font-weight:700;letter-spacing:.08em;cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease}.photo-action:hover:not(:disabled){transform:translateY(-2px)}.photo-action:focus-visible,.mobile-upload-back:focus-visible{outline:3px solid rgba(116,226,220,.8);outline-offset:3px}.photo-action:disabled{cursor:wait;opacity:.65}.photo-action--outline{background:transparent;color:var(--text-dark)}.photo-action--solid{background:var(--primary-color);color:#fff}.photo-upload-feedback{min-height:2rem;margin-top:1rem}.photo-upload-error,.photo-upload-success,.photo-upload-progress{margin:0;font-size:.9rem}.photo-upload-error{color:#ff9d9d}.photo-upload-success{color:#79dfa0}.photo-upload-progress{color:var(--text-light)}.upload-segments{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:.85rem}.upload-segment{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(200,200,216,.28);border-radius:50%;background:#e8e8f00f;color:var(--text-light);font-size:.72rem;font-weight:700;transition:border-color .2s ease,background .2s ease,transform .2s ease}.upload-segment--active{border-color:#74e2dc;background:#00717561;color:#fff;transform:scale(1.08)}.upload-segment--complete{border-color:#79dfa0;background:#51cf6638;color:#baf5cb}.upload-segment--error{border-color:#ff9d9d;background:#ff6b6b2e;color:#ffd1d1}.mobile-upload-page{position:relative;z-index:1;flex:1;display:grid;place-items:center;min-height:calc(100vh - 100px);padding:1rem;background:radial-gradient(circle at 50% 0%,rgba(0,113,117,.23),transparent 42%),linear-gradient(180deg,#0a0a144d,#0a0a14)}.mobile-upload-shell{width:min(100%,620px);padding:1rem 0 2.5rem}.mobile-upload-back{display:inline-block;margin-bottom:2.5rem;color:#8cece7;font-size:.84rem;text-decoration:none}.mobile-upload-header{margin-bottom:2rem;text-align:left}.mobile-upload-kicker{display:block;margin-bottom:.65rem;color:#74e2dc;font-size:.7rem;font-weight:600;letter-spacing:.24em}.mobile-upload-header h1{margin-bottom:.8rem;font-size:clamp(2.15rem,10vw,4rem);font-weight:300;line-height:1;letter-spacing:-.04em}.mobile-upload-header p,.mobile-upload-note{color:var(--text-light)}.mobile-upload-note{margin-top:1.5rem;font-size:.8rem;text-align:center}.photo-prompt-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3200;display:flex;align-items:flex-end;justify-content:center;padding:0;background:#02040ab8;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.photo-prompt{width:min(100%,560px);padding:.75rem 1.35rem calc(1.4rem + env(safe-area-inset-bottom));border:1px solid rgba(116,226,220,.28);border-bottom:0;border-radius:24px 24px 0 0;background:radial-gradient(circle at 50% 0%,rgba(0,113,117,.22),transparent 45%),#10121d;color:var(--text-dark);box-shadow:0 -24px 70px #00000094;text-align:center;animation:photo-prompt-in .28s ease-out both}.photo-prompt-handle{width:42px;height:4px;margin:0 auto 1.15rem;border-radius:999px;background:#c8c8d84d}.photo-prompt-icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto .85rem;border:1px solid rgba(116,226,220,.42);border-radius:50%;background:#0071752e;color:#8cece7}.photo-prompt-icon svg{width:27px;height:27px}.photo-prompt-kicker{margin-bottom:.45rem;color:#74e2dc;font-size:.66rem;font-weight:600;letter-spacing:.22em}.photo-prompt h2{margin-bottom:.65rem;font-size:clamp(1.45rem,7vw,2rem);font-weight:500;line-height:1.2}.photo-prompt #photo-prompt-description{max-width:430px;margin:0 auto 1.3rem;color:var(--text-light);font-size:.9rem}.photo-prompt-actions{display:grid;gap:.65rem}.photo-prompt-primary,.photo-prompt-secondary{width:100%;min-height:50px;border-radius:8px;font-family:var(--font-family);font-size:.78rem;font-weight:700;letter-spacing:.1em;cursor:pointer}.photo-prompt-primary{border:1px solid #0b8589;background:#08777b;color:#fff;box-shadow:0 8px 24px #00717547}.photo-prompt-secondary{border:1px solid rgba(200,200,216,.2);background:transparent;color:var(--text-light)}.photo-prompt-primary:focus-visible,.photo-prompt-secondary:focus-visible{outline:3px solid rgba(116,226,220,.8);outline-offset:3px}.photo-prompt-privacy{margin-top:.95rem;color:#9292a4;font-size:.72rem}@keyframes photo-prompt-in{0%{transform:translateY(100%);opacity:.5}to{transform:translateY(0);opacity:1}}@media (min-width: 700px){.photo-prompt-backdrop{align-items:center;padding:1rem}.photo-prompt{padding:1rem 1.8rem 1.6rem;border-bottom:1px solid rgba(116,226,220,.28);border-radius:24px}}@media (max-width: 520px){.photo-upload-actions{flex-direction:column}.photo-action{width:100%}}@media (prefers-reduced-motion: reduce){.photo-action,.photo-prompt{transition:none;animation:none}}
