@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&family=Inter:wght@300;400;500;600;700&display=swap";:root{--font-serif:"Cormorant Garamond", Georgia, serif;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--color-bg:#faf8f5;--color-card:#fff;--color-border:#efece6;--color-text-primary:#2c2a29;--color-text-secondary:#7a7571;--color-gold:#c5a880;--color-gold-dark:#b3966e;--color-gold-light:#f4efea;--color-olive:#5e6e56;--color-olive-dark:#4d5c45;--color-danger:#d32f2f;--color-danger-hover:#b71c1c;--color-overlay:#2c2a2966;--color-modal-bg:#2c2a2999;--shadow-sm:0 2px 8px #7a757114;--shadow-md:0 4px 20px #7a75711f;--shadow-lg:0 10px 30px #7a757129;--radius-sm:6px;--radius-md:12px;--radius-lg:24px}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--color-text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f4f1ec;flex-direction:column;align-items:center;width:100%;line-height:1.5;display:flex;overflow-x:hidden}#root{flex-direction:column;align-items:center;width:100%;display:flex}button,input,textarea{font-family:inherit}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--color-gold)}.hero-section-wrapper{text-align:center;background:radial-gradient(circle at top, #faf6f0 0%, var(--color-bg) 100%);flex-direction:column;justify-content:center;align-items:center;padding:6rem 1.5rem 4rem;display:flex;position:relative;overflow:hidden}.hero-section-wrapper .hero-particles{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.hero-section-wrapper .gold-particle{background-color:var(--color-gold);opacity:0;width:8px;height:8px;box-shadow:0 0 8px var(--color-gold);border-radius:50%;animation:ease-in-out infinite floatUp;position:absolute;bottom:-20px}.hero-section-wrapper .hero-card-frame{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);z-index:2;background-color:#fff;border:1px solid #c5a8804d;width:100%;max-width:720px;padding:12px;animation:1.2s cubic-bezier(.16,1,.3,1) forwards frameScaleIn;position:relative}.hero-section-wrapper .hero-card-inner-frame{border-radius:calc(var(--radius-lg) - 8px);border:2px double #c5a88066;flex-direction:column;align-items:center;padding:3rem 2.5rem;display:flex}.hero-section-wrapper .hero-container{flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:100%;display:flex}.hero-section-wrapper .hero-badge{background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.08em;box-shadow:var(--shadow-sm);opacity:0;align-items:center;gap:.6rem;margin-bottom:2rem;padding:.5rem 1.25rem;font-size:.8rem;font-weight:500;animation:.8s .2s forwards fadeInUp;display:inline-flex}.hero-section-wrapper .hero-icon-gold{color:var(--color-gold)}.hero-section-wrapper .hero-names{font-family:var(--font-serif);color:var(--color-text-primary);letter-spacing:-.01em;opacity:0;margin-bottom:.5rem;font-size:4rem;font-weight:300;line-height:1.1;animation:.8s .4s forwards fadeInUp}.hero-section-wrapper .hero-divider{opacity:0;align-items:center;gap:1.25rem;width:100%;max-width:280px;margin-bottom:1.5rem;animation:.8s .5s forwards fadeInUp;display:flex}.hero-section-wrapper .hero-divider-line{background:linear-gradient(90deg,#0000,#c5a88080,#0000);flex:1;height:1px}.hero-section-wrapper .hero-divider-flower{color:var(--color-gold);font-size:.75rem}.hero-section-wrapper .hero-description{color:var(--color-text-secondary);opacity:0;max-width:520px;margin-bottom:2.5rem;font-size:1.1rem;font-weight:300;line-height:1.7;animation:.8s .6s forwards fadeInUp}.hero-section-wrapper .hero-countdown{border-radius:var(--radius-md);opacity:0;background:#faf8f5;border:1px solid #c5a88033;align-items:center;gap:.85rem;margin-bottom:3rem;padding:1.25rem 2.25rem;animation:.8s .8s forwards fadeInUp;display:flex;box-shadow:inset 0 2px 4px #7a757105}.hero-section-wrapper .countdown-item{flex-direction:column;align-items:center;min-width:65px;display:flex}.hero-section-wrapper .countdown-number{font-family:var(--font-sans);color:var(--color-text-primary);font-size:1.85rem;font-weight:600;line-height:1.2}.hero-section-wrapper .countdown-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-top:.25rem;font-size:.75rem}.hero-section-wrapper .countdown-colon{color:var(--color-gold);margin-top:-1.25rem;font-size:1.5rem;font-weight:500;animation:1.5s infinite pulse}.hero-section-wrapper .hero-cta-btn{background-color:var(--color-gold);color:#fff;border-radius:var(--radius-lg);cursor:pointer;opacity:0;border:none;outline:none;align-items:center;gap:.75rem;padding:1.1rem 2.5rem;font-size:1.05rem;font-weight:500;transition:all .3s cubic-bezier(.16,1,.3,1);animation:.8s 1s forwards fadeInUp;display:inline-flex;box-shadow:0 4px 18px #c5a88059}.hero-section-wrapper .hero-cta-btn:hover{background-color:var(--color-gold-dark);transform:translateY(-3px);box-shadow:0 8px 24px #c5a88080}.hero-section-wrapper .hero-cta-btn:active{transform:translateY(-1px)}.hero-section-wrapper .cta-icon{transition:transform .3s}.hero-section-wrapper .hero-cta-btn:hover .cta-icon{transform:rotate(-12deg)scale(1.15)}@keyframes floatUp{0%{opacity:0;transform:translateY(0)translate(0)scale(.5)}15%{opacity:.6}50%{opacity:.8;transform:translateY(-400px)translate(25px)scale(1)}85%{opacity:.4}to{opacity:0;transform:translateY(-800px)translate(-25px)scale(.5)}}@keyframes frameScaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@media (width<=768px){.hero-section-wrapper{padding:3rem 1rem 2rem}.hero-section-wrapper .hero-card-inner-frame{padding:2.25rem 1.25rem}.hero-section-wrapper .hero-names{font-size:2.85rem}.hero-section-wrapper .hero-description{margin-bottom:2rem;font-size:.95rem}.hero-section-wrapper .hero-countdown{gap:.5rem;margin-bottom:2.5rem;padding:1rem 1.25rem}.hero-section-wrapper .countdown-item{min-width:50px}.hero-section-wrapper .countdown-number{font-size:1.45rem}.hero-section-wrapper .hero-cta-btn{justify-content:center;width:100%;padding:.95rem 1.75rem;font-size:.95rem}}.gallery-section-wrapper{max-width:1200px;margin:0 auto;padding:2rem 1.5rem 6rem}.gallery-section-wrapper .gallery-header{text-align:center;flex-direction:column;align-items:center;margin-bottom:3.5rem;display:flex;position:relative}.gallery-section-wrapper .gallery-title{font-family:var(--font-serif);color:var(--color-text-primary);letter-spacing:-.01em;margin-bottom:.25rem;font-size:2.4rem;font-weight:400}.gallery-section-wrapper .gallery-subtitle{color:var(--color-text-secondary);margin-bottom:1.5rem;font-size:.95rem;font-weight:300}.gallery-section-wrapper .layout-switcher{border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background-color:#fff;gap:.25rem;padding:.35rem;display:inline-flex}.gallery-section-wrapper .switcher-btn{border-radius:var(--radius-lg);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;outline:none;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.8rem;font-weight:500;transition:all .25s cubic-bezier(.16,1,.3,1);display:flex}.gallery-section-wrapper .switcher-btn:hover{color:var(--color-gold);background-color:var(--color-bg)}.gallery-section-wrapper .switcher-btn.active{color:#fff;background-color:var(--color-gold);box-shadow:0 2px 8px #c5a8804d}.gallery-section-wrapper .gallery-grid{width:100%;transition:all .4s}.gallery-section-wrapper .gallery-grid.mode-masonry{column-count:3;column-gap:1.5rem}.gallery-section-wrapper .gallery-grid.mode-masonry .gallery-card{break-inside:avoid;margin-bottom:1.5rem;display:inline-block}.gallery-section-wrapper .gallery-grid.mode-collage{grid-gap:1.5rem;grid-template-columns:repeat(3,1fr);grid-auto-flow:dense;display:grid}.gallery-section-wrapper .gallery-grid.mode-collage .gallery-card{flex-direction:column;height:100%;display:flex}.gallery-section-wrapper .gallery-grid.mode-collage .card-image-wrapper{flex:1;height:240px}.gallery-section-wrapper .gallery-grid.mode-collage .card-image{object-fit:cover;width:100%;height:100%}.gallery-section-wrapper .gallery-grid.mode-collage .collage-large{grid-area:span 2/span 2}.gallery-section-wrapper .gallery-grid.mode-collage .collage-large .card-image-wrapper{height:540px}.gallery-section-wrapper .gallery-grid.mode-collage .collage-wide{grid-column:span 2}.gallery-section-wrapper .gallery-grid.mode-collage .collage-wide .card-image-wrapper{height:240px}.gallery-section-wrapper .gallery-grid.mode-matrix{grid-gap:1.5rem;grid-template-columns:repeat(3,1fr);display:grid}.gallery-section-wrapper .gallery-grid.mode-matrix .gallery-card{flex-direction:column;display:flex}.gallery-section-wrapper .gallery-grid.mode-matrix .card-image-wrapper{aspect-ratio:1;width:100%}.gallery-section-wrapper .gallery-grid.mode-matrix .card-image{object-fit:cover;width:100%;height:100%}.gallery-section-wrapper .gallery-card{background-color:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);width:100%;transition:all .3s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.gallery-section-wrapper .gallery-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-gold);transform:translateY(-4px)}.gallery-section-wrapper .card-image-wrapper{cursor:pointer;background-color:var(--color-bg);position:relative;overflow:hidden}.gallery-section-wrapper .card-image{width:100%;transition:transform .6s cubic-bezier(.16,1,.3,1);display:block}.gallery-section-wrapper .gallery-card:hover .card-image{transform:scale(1.04)}.gallery-section-wrapper .card-hover-overlay{opacity:0;background-color:#2c2a2940;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s;display:flex;position:absolute;top:0;left:0}.gallery-section-wrapper .card-image-wrapper:hover .card-hover-overlay{opacity:1}.gallery-section-wrapper .view-badge{color:var(--color-text-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background-color:#fffffff2;padding:.45rem 1rem;font-size:.8rem;font-weight:500;transition:transform .3s cubic-bezier(.16,1,.3,1);transform:translateY(10px)}.gallery-section-wrapper .card-image-wrapper:hover .view-badge{transform:translateY(0)}.gallery-section-wrapper .card-heart-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;border-radius:var(--radius-lg);cursor:pointer;z-index:10;background-color:#2c2a29a6;border:none;outline:none;align-items:center;gap:.35rem;padding:.35rem .7rem;font-size:.8rem;font-weight:500;transition:all .25s cubic-bezier(.16,1,.3,1);display:inline-flex;position:absolute;bottom:.75rem;left:.75rem;box-shadow:0 2px 6px #00000026}.gallery-section-wrapper .card-heart-badge:hover{background-color:#2c2a29cc;transform:scale(1.05)}.gallery-section-wrapper .card-heart-badge.liked{background-color:#e0245ed9;box-shadow:0 4px 10px #e0245e59}.gallery-section-wrapper .card-heart-badge.liked:hover{background-color:#e0245ef2}.gallery-section-wrapper .video-play-indicator{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:2px solid var(--color-gold);color:#fff;pointer-events:none;z-index:5;background-color:#2c2a29bf;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;padding-left:2px;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 15px #0000004d}.gallery-section-wrapper .card-image-wrapper:hover .video-play-indicator{background-color:var(--color-gold);border-color:#fff;transform:translate(-50%,-50%)scale(1.1);box-shadow:0 6px 20px #c5a88066}.gallery-section-wrapper .double-click-heart-overlay{pointer-events:none;z-index:15;background:0 0;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.gallery-section-wrapper .animate-heart-pop{animation:.7s cubic-bezier(.175,.885,.32,1.275) forwards heartPopEffect}.gallery-section-wrapper .card-delete-btn{background-color:var(--color-danger);color:#fff;cursor:pointer;z-index:10;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex;position:absolute;top:.75rem;right:.75rem;box-shadow:0 2px 8px #00000040}.gallery-section-wrapper .card-delete-btn:hover{background-color:var(--color-danger-hover);transform:scale(1.1)}.gallery-section-wrapper .card-info{flex-direction:column;flex:1;justify-content:space-between;padding:1.25rem;display:flex}.gallery-section-wrapper .card-meta{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.gallery-section-wrapper .card-uploader{color:var(--color-text-primary);font-size:.9rem;font-weight:600}.gallery-section-wrapper .card-time{color:var(--color-text-secondary);align-items:center;gap:.25rem;font-size:.75rem;display:flex}.gallery-section-wrapper .card-note{color:var(--color-text-secondary);border-top:1px solid var(--color-border);margin-top:.6rem;padding-top:.6rem;font-size:.85rem;font-style:italic;line-height:1.5}.gallery-section-wrapper .gallery-empty-state{text-align:center;background-color:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);max-width:500px;box-shadow:var(--shadow-sm);flex-direction:column;justify-content:center;align-items:center;margin:3rem auto;padding:6rem 2rem;display:flex}.gallery-section-wrapper .empty-heart-icon{color:var(--color-gold);margin-bottom:1.5rem;animation:2s ease-in-out infinite heartPulse}.gallery-section-wrapper .empty-text{font-family:var(--font-serif);color:var(--color-text-primary);margin-bottom:.5rem;font-size:1.6rem;font-weight:400}.gallery-section-wrapper .empty-subtext{color:var(--color-text-secondary);font-size:.9rem;font-weight:300}@keyframes heartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@media (width<=992px){.gallery-section-wrapper .gallery-grid.mode-masonry{column-count:2}.gallery-section-wrapper .gallery-grid.mode-collage{grid-template-columns:repeat(2,1fr)}.gallery-section-wrapper .gallery-grid.mode-collage .collage-large{grid-area:span 2/span 2}.gallery-section-wrapper .gallery-grid.mode-collage .collage-large .card-image-wrapper{height:480px}.gallery-section-wrapper .gallery-grid.mode-collage .collage-wide{grid-column:span 2}.gallery-section-wrapper .gallery-grid.mode-matrix{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.gallery-section-wrapper{padding:1.5rem .5rem 4rem}.gallery-section-wrapper .gallery-title{font-size:1.8rem}.gallery-section-wrapper .layout-switcher{width:100%;max-width:320px}.gallery-section-wrapper .layout-switcher .switcher-btn{flex:1;justify-content:center;padding:.4rem}.gallery-section-wrapper .layout-switcher .switcher-btn span{display:none}.gallery-section-wrapper .gallery-grid.mode-masonry{column-count:2;column-gap:.5rem}.gallery-section-wrapper .gallery-grid.mode-masonry .gallery-card{margin-bottom:.5rem}.gallery-section-wrapper .gallery-grid.mode-masonry .card-info{padding:.5rem}.gallery-section-wrapper .gallery-grid.mode-masonry .card-uploader{font-size:.75rem}.gallery-section-wrapper .gallery-grid.mode-masonry .card-time{font-size:.65rem}.gallery-section-wrapper .gallery-grid.mode-masonry .card-note{margin-top:.4rem;padding-top:.4rem;font-size:.75rem}.gallery-section-wrapper .gallery-grid.mode-collage{grid-gap:.5rem;grid-template-columns:repeat(2,1fr)}.gallery-section-wrapper .gallery-grid.mode-collage .gallery-card{margin-bottom:0}.gallery-section-wrapper .gallery-grid.mode-collage .card-image-wrapper{height:140px}.gallery-section-wrapper .gallery-grid.mode-collage .collage-large{grid-area:span 2/span 2}.gallery-section-wrapper .gallery-grid.mode-collage .collage-large .card-image-wrapper{height:300px}.gallery-section-wrapper .gallery-grid.mode-collage .collage-wide{grid-column:span 2}.gallery-section-wrapper .gallery-grid.mode-collage .collage-wide .card-image-wrapper{height:140px}.gallery-section-wrapper .gallery-grid.mode-collage .card-info{padding:.5rem}.gallery-section-wrapper .gallery-grid.mode-collage .card-uploader{font-size:.75rem}.gallery-section-wrapper .gallery-grid.mode-collage .card-time{font-size:.65rem}.gallery-section-wrapper .gallery-grid.mode-collage .card-note{margin-top:.4rem;padding-top:.4rem;font-size:.75rem}.gallery-section-wrapper .gallery-grid.mode-matrix{grid-gap:.25rem;grid-template-columns:repeat(3,1fr)}.gallery-section-wrapper .gallery-grid.mode-matrix .gallery-card{border-radius:var(--radius-sm)}.gallery-section-wrapper .gallery-grid.mode-matrix .card-info{padding:.25rem .35rem}.gallery-section-wrapper .gallery-grid.mode-matrix .card-uploader{white-space:nowrap;text-overflow:ellipsis;font-size:.7rem;overflow:hidden}.gallery-section-wrapper .gallery-grid.mode-matrix .card-time,.gallery-section-wrapper .gallery-grid.mode-matrix .card-note{display:none}}@keyframes heartPopEffect{0%{opacity:0;transform:scale(0)rotate(0)}15%{opacity:.9;transform:scale(1.2)rotate(-15deg)}30%{opacity:1;transform:scale(1)rotate(0)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}.upload-modal-wrapper{background-color:var(--color-modal-bg);z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;width:100vw;height:100vh;padding:1rem;animation:.3s forwards modalFadeIn;display:flex;position:fixed;top:0;left:0}.upload-modal-wrapper .upload-modal-content{background-color:var(--color-card);border-radius:var(--radius-md);width:100%;max-width:500px;box-shadow:var(--shadow-lg);max-height:90vh;padding:2.5rem 2rem;animation:.4s cubic-bezier(.16,1,.3,1) forwards modalScaleIn;position:relative;overflow-y:auto}.upload-modal-wrapper .modal-close-btn{cursor:pointer;color:var(--color-text-secondary);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.5rem;transition:all .2s;display:inline-flex;position:absolute;top:1rem;right:1rem}.upload-modal-wrapper .modal-close-btn:hover{background-color:var(--color-bg);color:var(--color-text-primary)}.upload-modal-wrapper .modal-title{font-family:var(--font-serif);color:var(--color-text-primary);margin-bottom:.25rem;font-size:1.8rem;font-weight:500}.upload-modal-wrapper .modal-subtitle{color:var(--color-text-secondary);margin-bottom:1.5rem;font-size:.9rem}.upload-modal-wrapper .modal-error-alert{color:var(--color-danger);border-radius:var(--radius-sm);background-color:#fdf2f2;border:1px solid #fbd5d5;margin-bottom:1.5rem;padding:.75rem 1rem;font-size:.85rem}.upload-modal-wrapper .modal-form{flex-direction:column;gap:1.25rem;display:flex}.upload-modal-wrapper .file-drop-zone{border:2px dashed var(--color-border);border-radius:var(--radius-md);cursor:pointer;background-color:var(--color-bg);justify-content:center;align-items:center;width:100%;height:180px;transition:all .3s;display:flex;position:relative;overflow:hidden}.upload-modal-wrapper .file-drop-zone:hover,.upload-modal-wrapper .file-drop-zone.drag-active{border-color:var(--color-gold);background-color:var(--color-gold-light)}.upload-modal-wrapper .drop-zone-content{text-align:center;flex-direction:column;align-items:center;padding:1.5rem;display:flex}.upload-modal-wrapper .icon-circle{background-color:var(--color-card);width:48px;height:48px;box-shadow:var(--shadow-sm);color:var(--color-gold);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.75rem;transition:all .3s;display:flex}.upload-modal-wrapper .file-drop-zone:hover .icon-circle{color:var(--color-gold-dark);transform:scale(1.1)}.upload-modal-wrapper .drop-text-primary{color:var(--color-text-primary);font-size:.9rem;font-weight:500}.upload-modal-wrapper .drop-text-secondary{color:var(--color-text-secondary);margin-top:.25rem;font-size:.8rem}.upload-modal-wrapper .preview-container{width:100%;height:100%;position:relative}.upload-modal-wrapper .image-preview{object-fit:cover;width:100%;height:100%}.upload-modal-wrapper .preview-overlay{color:#fff;opacity:0;background-color:#2c2a2966;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;width:100%;height:100%;font-size:.9rem;transition:opacity .3s;display:flex;position:absolute;top:0;left:0}.upload-modal-wrapper .preview-overlay:hover{opacity:1}.upload-modal-wrapper .preview-icon{filter:drop-shadow(0 2px 4px #0003)}.upload-modal-wrapper .form-group{flex-direction:column;gap:.35rem;display:flex;position:relative}.upload-modal-wrapper .form-label{color:var(--color-text-primary);font-size:.85rem;font-weight:500}.upload-modal-wrapper .form-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg);outline:none;padding:.75rem 1rem;font-size:.95rem;transition:all .2s}.upload-modal-wrapper .form-input:focus{border-color:var(--color-gold);background-color:var(--color-card);box-shadow:0 0 0 3px var(--color-gold-light)}.upload-modal-wrapper .form-textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-bg);resize:none;outline:none;padding:.75rem 1rem;font-size:.95rem;transition:all .2s}.upload-modal-wrapper .form-textarea:focus{border-color:var(--color-gold);background-color:var(--color-card);box-shadow:0 0 0 3px var(--color-gold-light)}.upload-modal-wrapper .char-count{color:var(--color-text-secondary);align-self:flex-end;margin-top:.15rem;font-size:.75rem}.upload-modal-wrapper .submit-btn{background-color:var(--color-gold);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;padding:1rem;font-size:1rem;font-weight:500;transition:all .3s;display:flex;box-shadow:0 2px 6px #c5a88033}.upload-modal-wrapper .submit-btn:hover:not(:disabled){background-color:var(--color-gold-dark);box-shadow:0 4px 12px #c5a88066}.upload-modal-wrapper .submit-btn:disabled{background-color:var(--color-border);color:var(--color-text-secondary);cursor:not-allowed;box-shadow:none}.upload-modal-wrapper .capture-actions-row{gap:1rem;width:100%;margin-top:.75rem;margin-bottom:.5rem;display:flex}.upload-modal-wrapper .capture-action-btn{border-radius:var(--radius-md);border:1px solid var(--color-gold);height:42px;color:var(--color-gold);cursor:pointer;background-color:#0000;outline:none;flex:1;justify-content:center;align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;transition:all .25s;display:inline-flex}.upload-modal-wrapper .capture-action-btn:hover:not(:disabled){background-color:var(--color-gold-light);color:var(--color-gold-dark);border-color:var(--color-gold-dark)}.upload-modal-wrapper .capture-action-btn:active:not(:disabled){transform:scale(.98)}.upload-modal-wrapper .capture-action-btn:disabled{border-color:var(--color-border);color:var(--color-text-secondary);cursor:not-allowed}.upload-modal-wrapper .spinner-icon{animation:1s linear infinite spin}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=576px){.upload-modal-wrapper{padding:.5rem}.upload-modal-wrapper .upload-modal-content{border-radius:var(--radius-sm);padding:1.75rem 1.25rem}.upload-modal-wrapper .modal-title{font-size:1.5rem}.upload-modal-wrapper .file-drop-zone{height:150px}}.lightbox-modal-wrapper{z-index:1100;background-color:#000;justify-content:center;align-items:center;width:100vw;height:100vh;animation:.3s forwards lightboxFadeIn;display:flex;position:fixed;top:0;left:0;overflow:hidden}.lightbox-modal-wrapper .lightbox-close-btn{color:#fff;cursor:pointer;z-index:1300;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:all .25s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:1.5rem;left:1.5rem;box-shadow:0 4px 12px #0000004d}.lightbox-modal-wrapper .lightbox-close-btn:hover{background-color:#ffffff40;transform:scale(1.05)}.lightbox-modal-wrapper .reels-container{scroll-snap-type:y mandatory;scroll-behavior:auto;-ms-overflow-style:none;scrollbar-width:none;width:100%;height:100%;overflow-y:scroll}.lightbox-modal-wrapper .reels-container::-webkit-scrollbar{display:none}.lightbox-modal-wrapper .reel-slide{scroll-snap-align:start;scroll-snap-stop:always;background-color:#000;justify-content:center;align-items:center;width:100%;height:100vh;display:flex;position:relative;overflow:hidden}.lightbox-modal-wrapper .reel-media-box{justify-content:center;align-items:center;width:100%;height:100%;padding-bottom:80px;display:flex}.lightbox-modal-wrapper .reel-image{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;max-width:90%;max-height:calc(100vh - 160px)}.lightbox-modal-wrapper .reel-bottom-overlay{z-index:10;color:#fff;text-align:left;pointer-events:none;background:linear-gradient(#0000 0%,#0006 40%,#000000d9 100%);width:100%;padding:6rem 5.5rem 2.5rem 2rem;position:absolute;bottom:0;left:0}.lightbox-modal-wrapper .reel-details{pointer-events:auto;flex-direction:column;gap:.35rem;max-width:600px;display:flex}.lightbox-modal-wrapper .reel-uploader{color:var(--color-gold);text-shadow:0 1px 3px #00000080;font-size:1.15rem;font-weight:600}.lightbox-modal-wrapper .reel-time{color:#efece6;opacity:.8;align-items:center;gap:.25rem;font-size:.75rem;display:inline-flex}.lightbox-modal-wrapper .reel-note{color:#fff;text-shadow:0 1px 3px #00000080;word-break:break-word;margin-top:.5rem;font-size:.95rem;font-style:italic;line-height:1.5}.lightbox-modal-wrapper .reel-actions-column{z-index:20;flex-direction:column;align-items:center;gap:1.5rem;display:flex;position:absolute;bottom:3rem;right:1.5rem}.lightbox-modal-wrapper .action-btn{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff26;border:none;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:50px;height:50px;transition:all .25s cubic-bezier(.16,1,.3,1);display:flex;position:relative;box-shadow:0 4px 10px #0000004d}.lightbox-modal-wrapper .action-btn:hover{background-color:#ffffff40;transform:scale(1.08)}.lightbox-modal-wrapper .action-btn:active{transform:scale(.92)}.lightbox-modal-wrapper .action-btn:disabled{opacity:.5;cursor:not-allowed}.lightbox-modal-wrapper .action-label{color:#efece6;text-shadow:0 1px 3px #000c;letter-spacing:.05em;margin-top:.15rem;font-size:.7rem;font-weight:500;position:absolute;bottom:-1.2rem}.lightbox-modal-wrapper .heart-btn{color:#fff;transition:all .2s}.lightbox-modal-wrapper .heart-btn.liked{color:#e0245e;background-color:#e0245e33}.lightbox-modal-wrapper .spinner-icon{animation:1s linear infinite spin}@keyframes lightboxFadeIn{0%{opacity:0}to{opacity:1}}@media (width<=768px){.lightbox-modal-wrapper .lightbox-close-btn{width:40px;height:40px;top:1rem;left:1rem}.lightbox-modal-wrapper .reel-media-box{padding-bottom:120px}.lightbox-modal-wrapper .reel-image{max-width:92%;max-height:calc(100vh - 220px)}.lightbox-modal-wrapper .reel-bottom-overlay{padding:5rem 4.5rem 2rem 1rem}.lightbox-modal-wrapper .reel-uploader{font-size:1.05rem}.lightbox-modal-wrapper .reel-note{font-size:.85rem}.lightbox-modal-wrapper .reel-actions-column{gap:1.25rem;bottom:2rem;right:1rem}.lightbox-modal-wrapper .action-btn{width:44px;height:44px}.lightbox-modal-wrapper .action-btn svg{width:20px;height:20px}.double-click-heart-overlay{pointer-events:none;z-index:15;background:0 0;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.animate-heart-pop{animation:.7s cubic-bezier(.175,.885,.32,1.275) forwards heartPopEffect}.reels-swipe-hint-overlay{z-index:1200;pointer-events:none;background-color:#000000a6;justify-content:center;align-items:center;width:100%;height:100%;animation:2.5s ease-in-out forwards fadeOutOverlay;display:flex;position:absolute;top:0;left:0}.hint-content{text-align:center;flex-direction:column;align-items:center;display:flex}.swipe-arrow-anim{color:var(--color-gold);margin-bottom:.75rem;animation:1.3s ease-in-out infinite swipeDownEffect}.hint-text{color:#fff;text-transform:uppercase;letter-spacing:.08em;text-shadow:0 2px 4px #00000080;font-size:1.1rem;font-weight:500}}@keyframes fadeOutOverlay{0%{opacity:1}80%{opacity:1}to{opacity:0}}@keyframes swipeDownEffect{0%{opacity:.3;transform:translateY(-10px)}50%{opacity:1;transform:translateY(10px)}to{opacity:.3;transform:translateY(-10px)}}.admin-login-wrapper .admin-toggle-btn{background-color:var(--color-card);color:var(--color-text-secondary);border:1px solid var(--color-border);cursor:pointer;width:44px;height:44px;box-shadow:var(--shadow-md);z-index:999;border-radius:50%;justify-content:center;align-items:center;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;bottom:2rem;right:2rem}.admin-login-wrapper .admin-toggle-btn:hover{background-color:var(--color-gold-light);border-color:var(--color-gold);color:var(--color-gold);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.admin-login-wrapper .admin-toggle-btn:active{transform:translateY(0)}.admin-login-wrapper .admin-status-bar{background-color:var(--color-text-primary);color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:999;align-items:center;gap:1rem;padding:.6rem 1.2rem;font-size:.85rem;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;display:flex;position:fixed;bottom:2rem;right:2rem}.admin-login-wrapper .status-text{color:var(--color-gold-light);align-items:center;gap:.5rem;display:flex}.admin-login-wrapper .status-icon{color:var(--color-gold)}.admin-login-wrapper .logout-btn{color:#fff;border-radius:var(--radius-sm);cursor:pointer;background-color:#ffffff1a;border:none;align-items:center;gap:.35rem;padding:.3rem .6rem;font-size:.75rem;transition:all .2s;display:flex}.admin-login-wrapper .logout-btn:hover{background-color:var(--color-danger)}.admin-login-wrapper .pin-modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1200;background-color:#2c2a2966;justify-content:center;align-items:center;width:100vw;height:100vh;animation:.2s forwards fadeIn;display:flex;position:fixed;top:0;left:0}.admin-login-wrapper .pin-modal-content{background-color:var(--color-card);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);text-align:center;width:90%;max-width:340px;padding:2rem;animation:.3s cubic-bezier(.16,1,.3,1) forwards scaleIn;position:relative}.admin-login-wrapper .pin-modal-close{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.25rem;display:flex;position:absolute;top:.75rem;right:.75rem}.admin-login-wrapper .pin-modal-close:hover{background-color:var(--color-bg);color:var(--color-text-primary)}.admin-login-wrapper .pin-modal-title{font-family:var(--font-serif);color:var(--color-text-primary);margin-bottom:.25rem;font-size:1.4rem;font-weight:500}.admin-login-wrapper .pin-modal-subtitle{color:var(--color-text-secondary);margin-bottom:1.25rem;font-size:.8rem}.admin-login-wrapper .pin-error-alert{color:var(--color-danger);border-radius:var(--radius-sm);background-color:#fdf2f2;border:1px solid #fbd5d5;margin-bottom:1rem;padding:.5rem;font-size:.75rem}.admin-login-wrapper .pin-form{flex-direction:column;gap:.75rem;display:flex}.admin-login-wrapper .pin-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);text-align:center;letter-spacing:.25em;background-color:var(--color-bg);outline:none;padding:.75rem;font-size:1rem;transition:all .2s}.admin-login-wrapper .pin-input:focus{border-color:var(--color-gold);box-shadow:0 0 0 3px var(--color-gold-light);background-color:#fff}.admin-login-wrapper .pin-submit-btn{background-color:var(--color-gold);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:.75rem;font-size:.95rem;font-weight:500;transition:background-color .2s}.admin-login-wrapper .pin-submit-btn:hover{background-color:var(--color-gold-dark)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media (width<=576px){.admin-login-wrapper .admin-toggle-btn{width:40px;height:40px;bottom:1rem;right:1rem}.admin-login-wrapper .admin-status-bar{padding:.5rem 1rem;bottom:1rem;right:1rem}}.welcome-modal-overlay{z-index:3000;background-color:#f4f1ec;justify-content:center;align-items:center;width:100vw;height:100vh;padding:1.5rem;animation:.5s forwards welcomeFadeIn;display:flex;position:fixed;top:0;left:0;overflow:hidden}.welcome-modal-overlay .welcome-modal-card{border-radius:var(--radius-lg);background-color:#fff;border:1px solid #c5a88059;width:100%;max-width:450px;padding:12px;animation:1s cubic-bezier(.16,1,.3,1) forwards welcomeCardScaleIn;position:relative;box-shadow:0 15px 45px #7a757126}.welcome-modal-overlay .welcome-modal-inner{border-radius:calc(var(--radius-lg) - 8px);text-align:center;border:2px double #c5a88066;flex-direction:column;align-items:center;padding:3rem 2rem;display:flex}.welcome-modal-overlay .welcome-wax-seal{background-color:var(--color-gold);color:#fff;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin-bottom:1.5rem;display:flex;position:relative;box-shadow:0 4px 12px #c5a88066,inset 0 0 10px #0000001a}.welcome-modal-overlay .welcome-wax-seal:after{content:"";border:1px solid #c5a8804d;border-radius:50%;position:absolute;inset:-4px}.welcome-modal-overlay .seal-heart{animation:2s ease-in-out infinite sealHeartBeat}.welcome-modal-overlay .welcome-tagline{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.15em;margin-bottom:.75rem;font-size:.8rem;font-weight:500}.welcome-modal-overlay .welcome-title{font-family:var(--font-serif);color:var(--color-text-primary);letter-spacing:-.01em;margin-bottom:.25rem;font-size:2.8rem;font-weight:300;line-height:1.2}.welcome-modal-overlay .welcome-subtitle{font-family:var(--font-serif);color:var(--color-gold);letter-spacing:.05em;margin-bottom:1rem;font-size:1.35rem;font-style:italic;font-weight:400}.welcome-modal-overlay .welcome-divider{justify-content:center;align-items:center;gap:.75rem;width:60%;margin-bottom:1rem;display:flex}.welcome-modal-overlay .welcome-dot{background-color:var(--color-gold);border-radius:50%;width:4px;height:4px}.welcome-modal-overlay .welcome-line{background:linear-gradient(90deg,#0000,#c5a88066,#0000);flex:1;height:1px}.welcome-modal-overlay .welcome-date{color:var(--color-text-primary);letter-spacing:.08em;margin-bottom:1.5rem;font-size:.95rem;font-weight:600}.welcome-modal-overlay .welcome-message{color:var(--color-text-secondary);margin-bottom:2.25rem;font-size:.9rem;font-weight:300;line-height:1.6}.welcome-modal-overlay .welcome-enter-btn{background-color:var(--color-gold);color:#fff;border-radius:var(--radius-lg);cursor:pointer;border:none;outline:none;justify-content:center;align-items:center;margin-bottom:1rem;padding:.95rem 2.5rem;font-size:1rem;font-weight:500;transition:all .3s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 4px 15px #c5a88066}.welcome-modal-overlay .welcome-enter-btn:hover{background-color:var(--color-gold-dark);transform:translateY(-2px);box-shadow:0 6px 20px #c5a8808c}.welcome-modal-overlay .welcome-enter-btn:active{transform:translateY(0)}.welcome-modal-overlay .welcome-music-note{color:var(--color-text-secondary);opacity:.8;align-items:center;gap:.35rem;font-size:.75rem;display:inline-flex}.welcome-modal-overlay .music-note-icon{color:var(--color-gold)}@keyframes welcomeFadeIn{0%{opacity:0}to{opacity:1}}@keyframes welcomeCardScaleIn{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes sealHeartBeat{0%{transform:scale(1)}25%{transform:scale(1.1)}40%{transform:scale(1)}60%{transform:scale(1.1)}to{transform:scale(1)}}@media (width<=576px){.welcome-modal-overlay{padding:1rem}.welcome-modal-overlay .welcome-modal-inner{padding:2.25rem 1.25rem}.welcome-modal-overlay .welcome-title{font-size:2.2rem}.welcome-modal-overlay .welcome-enter-btn{width:100%;padding:.85rem}}.app-page-wrapper{background-color:var(--color-bg);flex-direction:column;width:100%;max-width:1200px;min-height:100vh;margin:0 auto;display:flex;position:relative;box-shadow:0 0 35px #2c2a2914}.app-page-wrapper .app-main-content{flex:1;width:100%}.app-page-wrapper .app-alert-banner{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:2000;white-space:nowrap;text-align:center;background-color:#2c2a29e6;border:1px solid #ffffff1a;padding:.85rem 1.75rem;font-size:.9rem;font-weight:500;animation:.4s cubic-bezier(.16,1,.3,1) forwards alertSlideDown;position:fixed;top:1.5rem;left:50%;transform:translate(-50%)}.app-page-wrapper .app-footer{border-top:1px solid var(--color-border);text-align:center;background-color:#fff;margin-top:4rem;padding:3rem 1.5rem}.app-page-wrapper .app-footer .footer-content{text-align:center;flex-direction:column;align-items:center;gap:.5rem;max-width:600px;margin:0 auto;display:flex}.app-page-wrapper .app-footer .footer-title{font-family:var(--font-serif);color:var(--color-text-primary);letter-spacing:.05em;font-size:1.5rem;font-weight:500}.app-page-wrapper .app-footer .footer-details{color:var(--color-gold);text-transform:uppercase;letter-spacing:.1em;font-size:.85rem;font-weight:500}.app-page-wrapper .app-footer .footer-copyright{color:var(--color-text-secondary);margin-top:.5rem;font-size:.8rem;font-weight:300}.app-page-wrapper .app-music-toggle-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--color-gold);color:#fff;cursor:pointer;z-index:1000;background-color:#2c2a29cc;border-radius:20px;outline:none;align-items:center;gap:.5rem;height:40px;padding:0 1.2rem;font-size:.85rem;font-weight:500;transition:all .3s cubic-bezier(.16,1,.3,1);display:inline-flex;position:fixed;top:2rem;right:2rem;box-shadow:0 4px 15px #0003}.app-page-wrapper .app-music-toggle-btn.active{background-color:var(--color-gold);border-color:#fff;box-shadow:0 4px 15px #c5a88066}.app-page-wrapper .app-music-toggle-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000040}.app-page-wrapper .app-music-toggle-btn:active{transform:translateY(0)}.app-page-wrapper .music-btn-icon{flex-shrink:0}@keyframes alertSlideDown{0%{opacity:0;top:0}to{opacity:1;top:1.5rem}}@keyframes rotateVinyl{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=576px){.app-page-wrapper .app-music-toggle-btn{border-radius:17px;width:auto;height:34px;padding:0 .8rem;font-size:.75rem;top:1rem;right:1rem}.app-page-wrapper .app-alert-banner{white-space:normal;width:90%;padding:.75rem 1.25rem}.app-page-wrapper .app-footer{padding:2rem 1rem}}
