*,:before,:after{box-sizing:border-box}:root{--primary:#4f0c28;--primary-rgb:79, 12, 40;--secondary:#c5d2f8;--secondary-rgb:197, 210, 248;--dark-gold:#d4af37;--light-bg:#fcf9f6;--card-bg:#fff;--text-dark:#2c2224;--text-muted:#6b5d61;--border:#eadbdf;--sans:"Playfair Display", Georgia, serif;--body-sans:"Montserrat", system-ui, sans-serif;--book-cover-scale:1;font-family:var(--body-sans);background:var(--light-bg);color:var(--text-dark);box-sizing:border-box;margin:0;padding:0}body{background-color:var(--light-bg);background-image:radial-gradient(var(--border) .5px, transparent .5px), radial-gradient(var(--border) .5px, var(--light-bg) .5px);background-position:0 0,10px 10px;background-size:20px 20px;max-width:100vw;margin:0;overflow-x:hidden}#root{flex-direction:column;width:100%;max-width:100vw;min-height:100vh;display:flex;overflow-x:hidden}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}h1,h2,h3,h4{font-family:var(--sans);color:var(--primary);margin-top:0}a{color:var(--primary);text-decoration:none;transition:all .2s}a:hover{color:var(--dark-gold)}button{font-family:var(--body-sans);cursor:pointer;border:none;border-radius:8px;font-weight:600;transition:background-color .3s,color .3s,border-color .3s,box-shadow .3s}button:active{transform:scale(.97)}.navbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:2px solid var(--dark-gold);z-index:1000;background:#4f0c28f5;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;position:sticky;top:0;box-shadow:0 4px 20px #0000001a}.nav-logo{font-family:var(--sans);color:#fff;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:700;display:flex}.nav-logo span{color:var(--secondary)}.nav-links{align-items:center;gap:1.5rem;display:flex}.nav-link{color:#eadbdf;border-radius:6px;padding:.5rem 1rem;font-size:.95rem;font-weight:500}.nav-link:hover,.nav-link.active{color:#fff;background:#c5d2f826}.nav-btn{background:var(--secondary);color:var(--primary);border-radius:20px;padding:.6rem 1.2rem;font-weight:700}.nav-btn:hover{background:#fff;box-shadow:0 4px 12px #c5d2f866}.main-content{box-sizing:border-box;flex:1;width:100%;max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.hero-section{text-align:center;background:radial-gradient(circle,#c5d2f833 0%,#fcf9f600 70%);padding:3rem 1rem 4rem}.hero-tag{color:var(--primary);letter-spacing:3px;text-transform:uppercase;border-bottom:1px solid var(--dark-gold);margin-bottom:1rem;padding-bottom:.25rem;font-size:.85rem;font-weight:700;display:inline-block}.hero-title{margin-bottom:1.5rem;font-size:3.5rem;font-weight:400;line-height:1.2}.hero-names{font-weight:700}.hero-ampersand{color:var(--dark-gold);font-family:Georgia,serif;font-style:italic}.hero-subtitle{color:var(--text-muted);max-width:600px;margin:0 auto 2.5rem;font-size:1.2rem;line-height:1.6}.countdown-container{justify-content:center;gap:1.5rem;margin-top:2rem;display:flex}.countdown-box{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;min-width:80px;padding:1rem;box-shadow:0 8px 16px #4f0c280a}.countdown-val{color:var(--primary);font-size:2rem;font-weight:700;display:block}.countdown-lbl{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:.75rem}.section-title{text-align:center;margin-bottom:1rem;font-size:2.2rem;position:relative}.section-subtitle{text-align:center;color:var(--text-muted);max-width:500px;margin:0 auto 3rem;font-size:1rem;line-height:1.5}.section-divider{justify-content:center;align-items:center;gap:1rem;margin:3rem 0;display:flex}.section-divider .line{background:var(--border);width:100px;height:1px}.section-divider .heart{color:var(--primary);font-size:1.2rem}.book-section{perspective:1500px;flex-direction:column;align-items:center;width:100%;max-width:100%;padding:2rem 0;display:flex;overflow:hidden}.book-viewport{width:750px;height:520px;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;pointer-events:none;margin-bottom:2rem;position:relative}.book-shadow{filter:blur(5px);pointer-events:none;background:radial-gradient(#0003 0%,#0000 80%);width:770px;height:30px;position:absolute;bottom:-40px;left:-10px}.book-container{width:100%;height:100%;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;pointer-events:auto;position:absolute;transform:rotateX(15deg)rotateY(0)}.book-page{transform-origin:0;width:50%;height:100%;transform-style:preserve-3d;z-index:1;pointer-events:none;transition:transform 1.2s cubic-bezier(.25,1,.5,1);position:absolute;top:0;right:0}.book-page.clickable{pointer-events:auto}.page-face{backface-visibility:hidden;box-sizing:border-box;background-color:#fff;border-radius:0 8px 8px 0;width:100%;height:100%;position:absolute;overflow:hidden;box-shadow:inset 3px 0 10px #00000026,5px 5px 15px #0000001a}.page-face.back-face{border-radius:8px 0 0 8px;transform:rotateY(180deg);box-shadow:inset -3px 0 10px #00000026,-5px 5px 15px #0000001a}.page-face.cover-front{background:var(--primary);border:2px solid var(--dark-gold);color:#fff;text-align:center;border-left:none;flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex}.page-face.cover-back{background:var(--primary);border:2px solid var(--dark-gold);border-right:none;border-radius:8px 0 0 8px;transform:rotateY(180deg)}.cover-gold-border{border:1px solid var(--dark-gold);box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:1rem;display:flex}.cover-title{font-family:var(--sans);color:#fff;margin-bottom:.5rem;font-size:1.8rem}.cover-subtitle{color:var(--secondary);text-transform:uppercase;letter-spacing:2px;font-size:.8rem}.page-image-container{width:100%;height:100%;position:relative}.page-image{object-fit:cover;width:100%;height:100%}.page-image-wrapper{width:100%;height:100%;display:block}.page-caption{color:#fff;text-align:center;background:linear-gradient(#4f0c2800 0%,#4f0c28e6 100%);padding:1.5rem 1rem .8rem;position:absolute;bottom:0;left:0;right:0}.page-caption h3{font-family:var(--sans);color:#fff;margin:0 0 .2rem;font-size:1.2rem}.page-caption p{color:var(--secondary);margin:0;font-size:.8rem}.page-number{color:var(--text-muted);font-size:.75rem;position:absolute;bottom:10px}.page-face.front-face .page-number{right:15px}.page-face.back-face .page-number{left:15px}.book-controls{align-items:center;gap:1.5rem;display:flex}.book-btn{background:var(--primary);color:#fff;-webkit-font-smoothing:antialiased;align-items:center;gap:.4rem;padding:.6rem 1.2rem;font-size:.9rem;display:flex}.book-btn:disabled{background:var(--border);color:var(--text-muted);cursor:not-allowed}.book-btn:hover:not(:disabled){background:var(--dark-gold)}.cylinder-section{perspective:1200px;flex-direction:column;align-items:center;padding:3rem 0;display:flex;overflow:hidden}.cylinder-viewport{width:100%;height:500px;transform-style:preserve-3d;justify-content:center;align-items:center;margin-bottom:2.5rem;display:flex;position:relative}.cylinder-container{width:280px;height:420px;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.165,.84,.44,1);animation:30s linear infinite rotateIdle;position:absolute}.cylinder-container.paused{animation-play-state:paused}@keyframes rotateIdle{0%{transform:rotateY(0)}to{transform:rotateY(-360deg)}}.cylinder-panel{perspective:1000px;cursor:pointer;backface-visibility:hidden;background:0 0;border:none;width:280px;height:400px;position:absolute}.cylinder-panel-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.25,1,.5,1);position:relative}.cylinder-panel-inner.flipped{transform:rotateY(180deg)}.panel-front,.panel-back{backface-visibility:hidden;box-sizing:border-box;border-radius:12px;width:100%;height:100%;transition:all .3s;position:absolute;overflow:hidden}.panel-front{border:3px solid var(--border);background:#111;box-shadow:0 10px 25px #0000004d}.panel-back{background:var(--primary);border:3px solid var(--dark-gold);color:#fff;text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;display:flex;transform:rotateY(180deg);box-shadow:0 10px 25px #4f0c284d}.cylinder-panel:hover .panel-front{border-color:var(--dark-gold);box-shadow:0 15px 35px #4f0c2866}.cylinder-panel.active-panel .panel-front{border-color:var(--secondary);box-shadow:0 0 20px #c5d2f899}.panel-1{transform:rotateY(0)translateZ(243px)}.panel-2{transform:rotateY(60deg)translateZ(243px)}.panel-3{transform:rotateY(120deg)translateZ(243px)}.panel-4{transform:rotateY(180deg)translateZ(243px)}.panel-5{transform:rotateY(240deg)translateZ(243px)}.panel-6{transform:rotateY(300deg)translateZ(243px)}.panel-video{object-fit:cover;background-color:#000;width:100%;height:100%}.panel-overlay{color:#fff;opacity:1;background:#0006;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:absolute;inset:0}.cylinder-panel:hover .panel-overlay,.cylinder-panel.active-panel .panel-overlay{opacity:0}.play-badge{background:var(--primary);border:2px solid var(--dark-gold);border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;display:flex;box-shadow:0 4px 10px #0000004d}.panel-label{color:#fff;text-align:center;text-transform:uppercase;letter-spacing:1px;background:#000000b3;padding:.4rem;font-size:.75rem;position:absolute;bottom:0;left:0;right:0}.cylinder-controls{align-items:center;gap:1.5rem;display:flex}.cylinder-btn{background:var(--primary);color:#fff;border:1px solid var(--dark-gold);border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.1rem;display:flex}.cylinder-btn:hover{background:var(--dark-gold);transform:translateY(-2px);box-shadow:0 4px 12px #4f0c2833}.cylinder-hint{color:var(--text-muted);margin-top:.5rem;font-size:.85rem;font-style:italic}.card{background:var(--card-bg);border:1px solid var(--border);box-sizing:border-box;border-radius:16px;width:100%;max-width:500px;margin:0 auto;padding:2.5rem;box-shadow:0 10px 30px #4f0c2808}.form-group{text-align:left;margin-bottom:1.5rem}.form-label{color:var(--primary);text-transform:uppercase;letter-spacing:1px;margin-bottom:.5rem;font-size:.85rem;font-weight:600;display:block}.form-control{width:100%;font-family:var(--body-sans);border:1.5px solid var(--border);background:var(--light-bg);box-sizing:border-box;border-radius:8px;padding:.75rem 1rem;font-size:.95rem;transition:all .25s}.form-control:focus{border-color:var(--primary);background:#fff;outline:none;box-shadow:0 0 0 3px #4f0c281a}.btn-primary{background:var(--primary);color:#fff;border:1px solid var(--dark-gold);border-radius:8px;width:100%;padding:.85rem;font-size:1rem}.btn-primary:hover{background:#3b091e;box-shadow:0 6px 18px #4f0c2833}.alert-error{color:#9b1c1c;text-align:left;background:#fdf2f2;border:1px solid #fde8e8;border-radius:8px;margin-bottom:1.5rem;padding:.75rem 1rem;font-size:.85rem}.alert-success{color:#03543f;text-align:center;background:#edfdf5;border:1px solid #def7ec;border-radius:8px;margin-bottom:1.5rem;padding:.75rem 1rem;font-size:.85rem}.dashboard-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;display:flex}.table-container{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;margin-bottom:2rem;overflow:hidden;box-shadow:0 6px 16px #00000005}.admin-table{border-collapse:collapse;text-align:left;width:100%}.admin-table th{background:var(--primary);color:#fff;text-transform:uppercase;letter-spacing:1px;padding:1rem;font-size:.85rem;font-weight:600}.admin-table td{border-bottom:1px solid var(--border);color:var(--text-dark);padding:1rem;font-size:.9rem}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:#c5d2f81a}.btn-danger{color:#e02424;background:0 0;border:1px solid #fde8e8;border-radius:6px;padding:.4rem .8rem;font-size:.8rem}.btn-danger:hover{background:#fdf2f2;border-color:#fde8e8}.logout-btn{color:var(--primary);border:1.5px solid var(--primary);background:0 0;border-radius:6px;padding:.5rem 1rem;font-size:.85rem}.logout-btn:hover{background:var(--primary);color:#fff}.dashboard-grid{grid-template-columns:1fr 1.5fr;gap:2rem;margin:2rem 0;display:grid}.dashboard-tools{gap:1rem;margin-bottom:1.5rem;display:flex}.dashboard-pagination{border:1px solid var(--border);background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.2rem;padding:.85rem 1.2rem;display:flex}@media (width>=769px){.mobile-only{display:none!important}}@media (width<=768px){.desktop-only{display:none!important}}.guest-mobile-list{flex-direction:column;gap:1rem;width:100%;display:flex}.guest-mobile-card{border:1px solid var(--border);text-align:left;background:#fff;border-radius:12px;width:100%;padding:1.2rem;box-shadow:0 4px 12px #00000005}.guest-card-header{border-bottom:1px solid var(--border);align-items:center;gap:.6rem;margin-bottom:.6rem;padding-bottom:.6rem;display:flex}.guest-sn{color:var(--primary);background:var(--secondary);border-radius:6px;padding:.2rem .5rem;font-size:.8rem;font-weight:700}.guest-name{color:var(--primary);font-size:1rem;font-weight:700}.guest-card-body p{color:var(--text-dark);margin:.4rem 0;font-size:.85rem;line-height:1.4}.guest-card-body strong{color:var(--text-muted)}.guest-card-actions{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;margin-top:.8rem;padding-top:.8rem;display:flex}.action-buttons{gap:.5rem;display:flex}.btn-sm{align-items:center;gap:4px;display:inline-flex;padding:.4rem .8rem!important;font-size:.8rem!important}.pending-status{color:#6b5d61;font-size:.8rem;font-style:italic}@media (width<=900px){.dashboard-grid{grid-template-columns:1fr}}@media (width<=600px){.dashboard-tools{flex-direction:column}.dashboard-pagination{text-align:center;flex-direction:column;gap:1.2rem;padding:1.5rem 1rem}.dashboard-header{text-align:center;flex-direction:column;gap:1rem}.dashboard-header h1{font-size:1.8rem!important}.card{padding:1.5rem!important}}html,body{width:100%;max-width:100vw;overflow-x:hidden}.no-data{text-align:center;color:var(--text-muted);padding:3rem;font-style:italic}.wedding-footer{background:var(--primary);color:#fff;text-align:center;border-top:3px solid var(--dark-gold);margin-top:auto;padding:3rem 1.5rem}.footer-logo{font-family:var(--sans);margin-bottom:1rem;font-size:1.8rem;font-weight:700}.footer-logo span{color:var(--secondary)}.footer-info{color:#eadbdf;margin-bottom:1.5rem;font-size:.9rem}.footer-copyright{color:#fff6;font-size:.75rem}.about-couple{text-align:left;grid-template-columns:1fr 1fr;align-items:center;gap:3rem;margin:4rem 0;display:grid}@media (width<=768px){:root{--book-cover-scale:1.25}.about-couple{text-align:center;grid-template-columns:1fr;gap:2rem}.book-viewport{width:80vw;height:68vw;margin:1.5rem auto 12vw;transform:scale(1)}.book-shadow{width:82vw;height:20px;bottom:-30px}.cylinder-viewport{height:95vw}.cylinder-container{width:50vw;height:75vw}.cylinder-panel{width:50vw;height:71vw}.panel-1{transform:rotateY(0)translateZ(43vw)}.panel-2{transform:rotateY(60deg)translateZ(43vw)}.panel-3{transform:rotateY(120deg)translateZ(43vw)}.panel-4{transform:rotateY(180deg)translateZ(43vw)}.panel-5{transform:rotateY(240deg)translateZ(43vw)}.panel-6{transform:rotateY(300deg)translateZ(43vw)}.hero-title{font-size:2.5rem}}@media (width<=550px){.book-viewport{width:85vw;height:72vw;margin:1rem auto 14vw}.book-shadow{width:87vw}}@media (width<=480px){:root{--book-cover-scale:1.15}.book-viewport{width:90vw;height:78vw;margin:1rem auto 18vw;transform:scale(1)}.cover-title{margin-bottom:.3rem;line-height:1.3;font-size:1.15rem!important}.cover-subtitle{letter-spacing:1.5px;font-size:.6rem!important}.book-shadow{width:92vw;bottom:-20px}.cylinder-viewport{height:110vw}.cylinder-container{width:58vw;height:87vw}.cylinder-panel{width:58vw;height:83vw}.panel-1{transform:rotateY(0)translateZ(50vw)}.panel-2{transform:rotateY(60deg)translateZ(50vw)}.panel-3{transform:rotateY(120deg)translateZ(50vw)}.panel-4{transform:rotateY(180deg)translateZ(50vw)}.panel-5{transform:rotateY(240deg)translateZ(50vw)}.panel-6{transform:rotateY(300deg)translateZ(50vw)}.navbar{flex-direction:column;gap:1rem;padding:1rem}.nav-links{flex-wrap:wrap;justify-content:center;gap:.8rem}.nav-link{padding:.4rem .6rem;font-size:.85rem}.countdown-container{gap:.5rem}.countdown-box{min-width:60px;padding:.5rem}.countdown-val{font-size:1.4rem}}.lazy-load-image-background.blur{filter:blur(15px)}.lazy-load-image-background.blur.lazy-load-image-loaded{filter:blur();transition:filter .3s}.lazy-load-image-background.blur>img{opacity:0}.lazy-load-image-background.blur.lazy-load-image-loaded>img{opacity:1;transition:opacity .3s}
