*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:Cormorant Garamond,serif;overflow-x:hidden}.page{min-height:100vh;min-height:100dvh;padding:1.5rem 1rem;display:flex;flex-direction:column;align-items:center;text-align:center}.heading{font-family:Playfair Display,serif;font-weight:600;letter-spacing:.5px;font-size:1.5rem;margin:0 0 .5rem;word-break:break-word}.subtext{font-size:1rem;max-width:100%;line-height:1.55;opacity:.85;padding:0 .25rem}.card{background:#ffffffa6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:16px;padding:1.1rem;box-shadow:0 8px 24px #0000000f;max-width:100%;width:100%}.btn{font-family:Playfair Display,serif;font-size:.95rem;border:none;border-radius:999px;padding:.75rem 1.4rem;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;margin:.3rem;min-height:44px;touch-action:manipulation}.btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #00000026}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:#fff}.btn-outline{background:transparent;border:2px solid currentColor}input[type=text],input[type=password],input[type=file],textarea{width:100%;font-family:Cormorant Garamond,serif;font-size:16px;padding:.65rem .9rem;border:1px solid #ddd;border-radius:10px;margin:.4rem 0;background:#fff}input[type=file]{padding:.5rem;font-size:.9rem}textarea{resize:vertical;min-height:64px}.radio-group{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;margin:.6rem 0;font-size:1rem}.radio-group label{display:flex;align-items:center;gap:.3rem;white-space:nowrap}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;width:100%;max-width:100%;margin-top:1.25rem}.gallery-item{position:relative;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 4px 14px #00000014;text-align:left;cursor:pointer;transition:transform .15s ease}.gallery-item:hover{transform:translateY(-3px)}.gallery-item img,.gallery-item video{width:100%;display:block;aspect-ratio:1 / 1;object-fit:cover;background:#000}.gallery-item-body{padding:.5rem .6rem}.tag{display:inline-block;font-size:.75rem;background:#eaf4ef;color:#5c8374;padding:.2rem .6rem;border-radius:999px;margin:.12rem .2rem .12rem 0}.countdown{display:flex;gap:.5rem;justify-content:center;margin:1rem 0;flex-wrap:wrap}.countdown-unit{display:flex;flex-direction:column;align-items:center;min-width:48px}.countdown-number{font-family:Playfair Display,serif;font-size:1.5rem;font-weight:600}.countdown-label{font-size:.7rem;text-transform:uppercase;letter-spacing:1px;opacity:.7}.nav-links{margin-top:1.5rem;display:flex;flex-direction:column;gap:.6rem;width:100%}.nav-links a,.nav-links button{width:100%;margin:0}.filter-bar{display:flex;flex-direction:column;gap:.6rem;margin:1.25rem 0 1rem;background:#ffffff8c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:.85rem;border-radius:16px;box-shadow:0 4px 18px #0000000d;max-width:100%;width:100%}.filter-group{display:flex;flex-direction:column;align-items:flex-start;width:100%}.filter-group label{font-family:Playfair Display,serif;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;opacity:.55;margin-bottom:.3rem}.filter-group select{font-family:Cormorant Garamond,serif;font-size:.95rem;padding:.5rem .85rem;border-radius:999px;border:1px solid rgba(0,0,0,.1);background:#fff;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%23999'/></svg>");background-repeat:no-repeat;background-position:right 1rem center;cursor:pointer}.uploader-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;opacity:.5;margin:0 0 .35rem}.tab-bar{display:flex;gap:.35rem;margin:1rem 0;background:#ffffff80;padding:.3rem;border-radius:999px;width:100%;max-width:100%}.tab-btn{flex:1;font-family:Playfair Display,serif;font-size:.85rem;padding:.5rem .75rem;border:2px solid transparent;border-radius:999px;background:transparent;cursor:pointer;opacity:.6;transition:all .15s ease;white-space:nowrap}.tab-btn-active{opacity:1;background:#fff;font-weight:600}.photobooth-embed{width:100%;max-width:100%;height:60vh;border-radius:16px;overflow:hidden;box-shadow:0 8px 24px #0000001a;margin-top:.75rem}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#140f14e6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:.75rem;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox-content{display:flex;flex-direction:column;align-items:center;max-width:100%;max-height:90vh;width:100%}.lightbox-image{max-width:100%;max-height:48vh;border-radius:12px;box-shadow:0 12px 40px #0006;object-fit:contain;background:#000}.lightbox-info{background:#fff;border-radius:14px;padding:.9rem 1rem;margin-top:.85rem;max-width:100%;width:100%;text-align:center;max-height:30vh;overflow-y:auto}.lightbox-close{position:fixed;top:env(safe-area-inset-top,.75rem);right:.75rem;background:#fff3;border:none;color:#fff;font-size:1.2rem;width:38px;height:38px;border-radius:50%;cursor:pointer;z-index:1001}.qr-card{background:#fff;border-radius:20px;padding:1.25rem;box-shadow:0 8px 24px #0000001a;display:flex;flex-direction:column;align-items:center;margin:1.25rem 0;max-width:100%}.qr-card svg{max-width:100%;height:auto}.qr-caption{margin-top:1rem;font-size:.85rem;opacity:.6;word-break:break-all;text-align:center}@media print{.no-print{display:none!important}body,.page{background:#fff!important}}.hero-banner{position:relative;width:100%;height:34vh;min-height:220px;max-height:380px;overflow:hidden}.hero-banner-img{width:100%;height:100%;object-fit:cover;display:block}.hero-banner-fade{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.hero-banner-title{position:absolute;left:0;right:0;bottom:10%;text-align:center;color:#3d5c4f;font-size:1.6rem;font-style:italic;text-shadow:0 2px 14px rgba(0,0,0,.4);margin:0;padding:0 1rem}.hero-menu-btn{position:absolute;top:.85rem;right:.85rem;width:40px;height:40px;border-radius:50%;background:#ffffffd9;border:none;font-size:1.1rem;cursor:pointer;z-index:5}.hero-menu-dropdown{position:absolute;top:3.75rem;right:.85rem;background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000026;padding:.4rem;display:flex;flex-direction:column;z-index:6;min-width:150px}.hero-menu-dropdown a{padding:.55rem .75rem;text-decoration:none;color:#333;font-family:Cormorant Garamond,serif;font-size:1rem;border-radius:8px}.hero-menu-dropdown a:hover{background:#eaf4ef}.content-below-hero{padding:1.25rem .85rem 2rem;display:flex;flex-direction:column;align-items:center;text-align:center;width:100%}.file-count-label{font-size:.8rem;opacity:.65;margin:.25rem 0}.upload-trigger-btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;text-align:center;width:100%}.upload-preview-strip{display:flex;gap:.5rem;overflow-x:auto;padding:.65rem .2rem;margin:.4rem 0;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.25) transparent}.upload-preview-strip::-webkit-scrollbar{height:6px}.upload-preview-strip::-webkit-scrollbar-thumb{background:#00000040;border-radius:999px}.upload-preview-thumb{position:relative;flex:0 0 auto;width:70px;height:70px;border-radius:10px;overflow:hidden;background:#f0f0f0}.upload-preview-thumb img,.upload-preview-thumb video{width:100%;height:100%;object-fit:cover;display:block}.upload-preview-remove-left{position:absolute;top:4px;left:4px;background:#0009;color:#fff;border:none;width:18px;height:18px;border-radius:50%;cursor:pointer;font-size:.6rem;z-index:2;display:flex;align-items:center;justify-content:center;padding:0}.upload-add-more-thumb{flex:0 0 auto;width:70px;height:70px;border-radius:10px;border:2px dashed rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:#0006;cursor:pointer}.couple-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#140f1499;display:flex;align-items:center;justify-content:center;z-index:1100;padding:1rem;animation:fadeIn .15s ease}.couple-modal-window{background:#fff;border-radius:20px;padding:1.5rem 1.25rem;max-width:320px;width:100%;display:flex;flex-direction:column;align-items:center;box-shadow:0 16px 48px #00000040}.couple-stage{position:relative;width:100%;height:130px;overflow:hidden;display:flex;align-items:flex-end;justify-content:center}.couple-figure{position:absolute;bottom:0;height:130px;width:auto}.couple-groom,.couple-bride{left:50%;transition:transform .9s ease-out}.couple-growing-heart{position:absolute;top:50%;left:50%;width:28px;height:28px;z-index:5;transform-origin:center;transition:transform .3s ease-out}.couple-growing-heart:before,.couple-growing-heart:after{content:"";position:absolute;width:16px;height:24px;background:#6fa890;border-radius:16px 16px 0 0;top:0}.couple-growing-heart:before{left:14px;transform:rotate(-45deg);transform-origin:0 100%}.couple-growing-heart:after{left:0;transform:rotate(45deg);transform-origin:100% 100%}.couple-heart-fade-out{animation:heartFadeOut .5s ease forwards}@keyframes heartFadeOut{0%{opacity:1;transform:translate(-50%,-50%) scale(4.4)}to{opacity:0;transform:translate(-50%,-50%) scale(5.2)}}.couple-kiss-behind{opacity:.9;z-index:1}.couple-kiss{z-index:2}.couple-float-heart{position:absolute;bottom:40px;width:16px;height:16px;opacity:0;z-index:1;animation:floatUpLoop 2.4s ease-in infinite}.couple-float-heart:before,.couple-float-heart:after{content:"";position:absolute;width:9px;height:14px;background:#6fa890;border-radius:9px 9px 0 0;top:0}.couple-float-heart:before{left:8px;transform:rotate(-45deg);transform-origin:0 100%}.couple-float-heart:after{left:0;transform:rotate(45deg);transform-origin:100% 100%}.couple-float-heart-1{left:42%;animation-delay:0s}.couple-float-heart-2{left:55%;animation-delay:.5s}.couple-float-heart-3{left:48%;animation-delay:1s}.couple-float-heart-4{left:58%;animation-delay:1.5s}.couple-float-heart-5{left:45%;animation-delay:2s}@keyframes floatUpLoop{0%{transform:translateY(0) scale(.6);opacity:0}20%{opacity:1}to{transform:translateY(-90px) scale(1.1);opacity:0}}.couple-progress-text{margin-top:.5rem;font-size:.85rem;opacity:.7}.couple-progress-success{color:#4a8a5c;font-weight:600}.couple-ok-btn{margin-top:1rem;width:100%}.selection-bar{display:flex;flex-direction:column;gap:.6rem;width:100%;background:#fff9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:.75rem;border-radius:14px;margin-bottom:1rem}.selection-count{font-family:Playfair Display,serif;font-weight:600;font-size:.9rem}.selection-actions{display:flex;gap:.4rem;flex-wrap:wrap}.selection-btn{margin:0;padding:.5rem .85rem;font-size:.85rem;flex:1 1 auto}.gallery-item-selected{outline:3px solid #4a8a5c;outline-offset:-3px}.select-checkbox{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:50%;background:#ffffffd9;border:2px solid rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:#fff;z-index:3}.select-checkbox-active{background:#4a8a5c;border-color:#4a8a5c}.position-adjust-card{background:#fff9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;padding:.9rem 1rem;max-width:100%;width:100%;margin-bottom:1.1rem;text-align:center}.position-adjust-label{font-family:Playfair Display,serif;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:1px;opacity:.6;margin:0 0 .65rem}.position-preview-wrap{width:100%;height:90px;border-radius:10px;overflow:hidden;margin-bottom:.65rem}.position-preview-img{width:100%;height:100%;object-fit:cover;display:block}.position-slider{width:100%;cursor:pointer}.position-slider-labels{display:flex;justify-content:space-between;font-size:.72rem;opacity:.5;margin-top:.25rem}@media (min-width: 600px){.page{padding:2rem 1.5rem}.heading{font-size:clamp(1.8rem,4vw,2.2rem)}.subtext{font-size:1.15rem;max-width:500px}.card{padding:1.5rem;max-width:480px}.btn{font-size:1rem;padding:.8rem 1.8rem}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.85rem;max-width:1100px}.nav-links{flex-direction:row;flex-wrap:wrap;justify-content:center}.nav-links a,.nav-links button{width:auto}.filter-bar{flex-direction:row;align-items:flex-end;max-width:700px}.filter-group{flex:1 1 140px;min-width:120px}.tab-bar{max-width:400px}.photobooth-embed{max-width:900px;height:70vh}.lightbox-image{max-height:60vh}.lightbox-info,.lightbox-content{max-width:480px}.hero-banner{height:42vh;max-height:420px}.hero-banner-title{font-size:clamp(1.8rem,7vw,2.8rem);bottom:12%}.countdown{gap:.75rem}.countdown-unit{min-width:55px}.countdown-number{font-size:clamp(1.5rem,6vw,2.2rem)}.selection-bar{flex-direction:row;align-items:center;justify-content:space-between;max-width:700px}.selection-btn{flex:0 1 auto}.position-adjust-card,.qr-card{max-width:400px}}@media (min-width: 960px){.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}
