:root{--gold: #c9a96e;--gold-light: #e8d5b0;--gold-dark: #8a6e3e;--cream: #fdf8f0;--cream-dark: #f5ede0;--brown: #4a3728;--brown-light: #7a5c45;--white: #ffffff;--text-dark: #2d1f0e;--text-mid: #5c4033;--text-light: #9e8070;--overlay: rgba(20, 10, 5, .55);--overlay-dark:rgba(10, 5, 2, .78);--ff-display: "Cinzel", serif;--ff-body: "Cormorant Garamond", serif;--ff-sans: "Lato", sans-serif;--radius: 16px;--radius-sm: 8px;--shadow: 0 8px 40px rgba(100,60,20,.15);--shadow-card: 0 4px 24px rgba(100,60,20,.12);--transition: .4s cubic-bezier(.4,0,.2,1);--section-pad: 80px 20px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--ff-body);background:var(--cream);color:var(--text-dark);overflow-x:hidden;line-height:1.7}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:var(--ff-body);border:none;background:none}input,select,textarea{font-family:var(--ff-body);font-size:1rem;border:1.5px solid var(--gold-light);border-radius:var(--radius-sm);padding:10px 14px;width:100%;background:var(--white);color:var(--text-dark);outline:none;transition:border-color var(--transition)}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px #c9a96e26}.hidden{display:none!important}.container{max-width:800px;margin:0 auto;padding:0 20px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--cream)}::-webkit-scrollbar-thumb{background:var(--gold);border-radius:3px}.opening-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#0d0805;transition:opacity .8s ease,transform .8s ease}.opening-screen.fade-out{opacity:0;pointer-events:none}.opening-video-wrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.opening-video-wrap video{width:100%;height:100%;object-fit:cover;opacity:.5}.opening-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#0a050299,#140a054d,#0a0502b3)}.opening-content{position:relative;z-index:2;text-align:center;color:var(--white);padding:40px 20px;width:100%;max-width:600px}.opening-bismillah{font-family:var(--ff-body);font-size:clamp(1.2rem,4vw,2rem);color:var(--gold-light);margin-bottom:12px;direction:rtl}.opening-title{font-family:var(--ff-display);font-size:clamp(.9rem,3vw,1.1rem);letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:20px}.opening-names{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:16px}.groom-name,.bride-name{font-family:var(--ff-body);font-style:italic;font-size:clamp(2.5rem,10vw,4.5rem);font-weight:300;color:var(--white);text-shadow:0 2px 20px rgba(201,169,110,.4)}.opening-and{font-family:var(--ff-display);font-size:clamp(1.5rem,5vw,2.5rem);color:var(--gold)}.opening-date{font-family:var(--ff-display);font-size:clamp(.8rem,2.5vw,1rem);letter-spacing:.3em;color:var(--gold-light)}.opening-ornament.top,.opening-ornament.bottom{display:block;width:200px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:16px auto}.cover-section{min-height:100svh;position:relative;display:flex;align-items:center;justify-content:center}.cover-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:url(../media/photos/cover-bg.jpg) center/cover no-repeat;background-color:#1a0f05}.cover-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(160deg,#0a0502a6,#1e120866,#0a0502b3)}.cover-particles{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.cover-content{position:relative;z-index:2;text-align:center;color:var(--white);padding:60px 20px;width:100%;max-width:600px}.cover-bismillah{font-size:clamp(1rem,3.5vw,1.6rem);color:var(--gold-light);direction:rtl;margin-bottom:10px}.cover-invite-text{font-size:clamp(.85rem,2.5vw,1rem);letter-spacing:.15em;color:#fffc;margin-bottom:16px;font-family:var(--ff-sans);font-weight:300}.cover-guest-box{background:#ffffff14;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(201,169,110,.35);border-radius:var(--radius);padding:14px 28px;margin:0 auto 28px;max-width:400px}.cover-guest-label{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:4px;font-family:var(--ff-sans)}.cover-guest-name{font-size:clamp(1.1rem,4vw,1.5rem);font-style:italic;color:var(--white)}.cover-couple{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:10px}.cover-groom,.cover-bride{font-size:clamp(2rem,9vw,4rem);font-style:italic;font-weight:300;text-shadow:0 2px 20px rgba(201,169,110,.3)}.cover-and-wrap .cover-and{font-family:var(--ff-display);font-size:clamp(1.2rem,4vw,2rem);color:var(--gold)}.cover-sub{font-size:clamp(.75rem,2vw,.9rem);letter-spacing:.3em;color:var(--gold-light);margin-bottom:36px;font-family:var(--ff-sans)}.cover-ornament-top{display:block;width:150px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:0 auto 24px}.btn-open{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,var(--gold),var(--gold-dark));color:var(--white);padding:14px 34px;border-radius:50px;font-family:var(--ff-display);font-size:.95rem;letter-spacing:.15em;text-transform:uppercase;box-shadow:0 6px 30px #c9a96e66;transition:all var(--transition);position:relative;overflow:hidden}.btn-open:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.2),transparent);opacity:0;transition:opacity var(--transition)}.btn-open:hover:before{opacity:1}.btn-open:hover{transform:translateY(-2px);box-shadow:0 10px 40px #c9a96e80}.btn-open:active{transform:translateY(0)}.main-invitation{background:var(--cream)}.section{padding:var(--section-pad);position:relative}.section-header{text-align:center;margin-bottom:48px}.section-tag{display:inline-block;font-family:var(--ff-sans);font-size:.75rem;letter-spacing:.35em;text-transform:uppercase;color:var(--gold-dark);background:#c9a96e1f;padding:6px 18px;border-radius:50px;margin-bottom:12px;border:1px solid rgba(201,169,110,.3)}.section-title{font-family:var(--ff-display);font-size:clamp(1.8rem,5vw,2.8rem);color:var(--brown);font-weight:600;letter-spacing:.05em}.ornament-divider{text-align:center;margin:24px auto;display:flex;align-items:center;gap:16px;justify-content:center}.ornament-divider:before,.ornament-divider:after{content:"";flex:1;max-width:120px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}.ornament-divider:after{background:linear-gradient(90deg,var(--gold),transparent)}.ornament-divider:before{content:"✦";flex:none;font-size:1rem;color:var(--gold)}.ornament-divider:after{content:"✦";flex:none;font-size:1rem}.music-player{position:fixed;bottom:24px;right:20px;z-index:500;display:flex;align-items:center;gap:8px;background:#140a05d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(201,169,110,.3);border-radius:50px;padding:8px 16px 8px 8px;box-shadow:0 4px 20px #0000004d;transition:all var(--transition)}.music-btn{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0;transition:transform var(--transition)}.music-btn:hover{transform:scale(1.08)}.music-title{font-size:.75rem;color:var(--gold-light);font-family:var(--ff-sans);white-space:nowrap;overflow:hidden;max-width:120px;text-overflow:ellipsis}.music-title-wrap{overflow:hidden}.pengantar-section{background:linear-gradient(180deg,var(--cream-dark) 0%,var(--cream) 100%);text-align:center}.floral-bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(../assets/images/floral-pattern.png) center/contain no-repeat;opacity:.04;pointer-events:none}.arabic-text{font-family:var(--ff-body);font-size:clamp(1.3rem,4vw,2rem);color:var(--gold-dark);direction:rtl;line-height:2;margin-bottom:8px}.arabic-source{font-size:.85rem;color:var(--text-light);letter-spacing:.1em;margin-bottom:24px;font-style:italic}.intro-text{font-size:clamp(1rem,2.5vw,1.15rem);color:var(--text-mid);line-height:2;max-width:600px;margin:0 auto}.mempelai-section{background:var(--cream)}.couple-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:32px;align-items:center}.couple-card{text-align:center;background:var(--white);border-radius:var(--radius);padding:32px 24px;box-shadow:var(--shadow-card);border:1px solid rgba(201,169,110,.2);transition:transform var(--transition)}.couple-card:hover{transform:translateY(-4px)}.couple-photo-wrap{position:relative;width:180px;height:220px;margin:0 auto 20px;border-radius:100px 100px 60px 60px;overflow:hidden}.couple-photo{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.couple-card:hover .couple-photo{transform:scale(1.05)}.couple-photo-frame{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:100px 100px 60px 60px;border:3px solid var(--gold-light);pointer-events:none}.couple-fullname{font-family:var(--ff-body);font-size:clamp(1.1rem,3vw,1.4rem);font-style:italic;color:var(--brown);margin-bottom:8px}.couple-parents{font-size:.85rem;color:var(--text-light);line-height:1.7;font-family:var(--ff-sans)}.couple-heart{font-size:2.5rem;color:var(--gold);text-align:center;animation:heartbeat 1.8s ease-in-out infinite}@keyframes heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.15)}28%{transform:scale(1)}42%{transform:scale(1.1)}56%{transform:scale(1)}}.countdown-section{text-align:center;padding:100px 20px}.countdown-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#1a0f05,#2d1f0e,#1a0f05)}.countdown-section .section-header .section-tag{color:var(--gold-light)}.countdown-section .section-title{color:var(--white)}.countdown-grid{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.countdown-item{background:#ffffff0f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(201,169,110,.25);border-radius:var(--radius);padding:24px 20px;min-width:90px;text-align:center}.countdown-num{display:block;font-family:var(--ff-display);font-size:clamp(2.2rem,7vw,3.5rem);color:var(--gold);line-height:1;margin-bottom:8px}.countdown-label{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:#fff9;font-family:var(--ff-sans)}.countdown-sep{font-size:2rem;color:var(--gold);font-weight:300;margin-bottom:20px}.countdown-msg{color:var(--gold-light);font-size:1.4rem;margin-top:24px}.acara-section{background:var(--cream-dark)}.acara-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.acara-card{background:var(--white);border-radius:var(--radius);padding:36px 28px;text-align:center;box-shadow:var(--shadow-card);border:1px solid rgba(201,169,110,.2);transition:transform var(--transition)}.acara-card:hover{transform:translateY(-4px)}.acara-icon{font-size:2.5rem;color:var(--gold);margin-bottom:16px}.acara-type{font-family:var(--ff-display);font-size:1.2rem;color:var(--brown);margin-bottom:20px;letter-spacing:.05em}.acara-detail p{margin-bottom:8px}.acara-date{font-size:1rem;font-weight:600;color:var(--brown)}.acara-time{color:var(--gold-dark);font-style:italic;font-size:.95rem}.acara-venue{font-size:1rem;color:var(--text-dark);margin-top:12px}.acara-address{font-size:.85rem;color:var(--text-light);font-family:var(--ff-sans);line-height:1.6}.btn-calendar{display:inline-flex;align-items:center;gap:8px;margin-top:20px;padding:10px 20px;border:1.5px solid var(--gold);border-radius:50px;color:var(--gold-dark);font-size:.85rem;transition:all var(--transition)}.btn-calendar:hover{background:var(--gold);color:var(--white)}.timeline-section{background:var(--cream)}.timeline{position:relative;max-width:700px;margin:0 auto}.timeline:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:linear-gradient(180deg,transparent,var(--gold),transparent);transform:translate(-50%)}.timeline-item{display:grid;grid-template-columns:1fr 20px 1fr;gap:0 24px;margin-bottom:48px;position:relative}.timeline-item.left .timeline-card{grid-column:1;grid-row:1;text-align:right}.timeline-item.left .timeline-dot{grid-column:2;grid-row:1}.timeline-item.left .timeline-card+*{grid-column:3}.timeline-item.right .timeline-card{grid-column:3;grid-row:1}.timeline-item.right .timeline-dot{grid-column:2;grid-row:1}.timeline-dot{width:20px;height:20px;border-radius:50%;background:var(--gold);border:3px solid var(--cream);box-shadow:0 0 0 3px var(--gold-light);align-self:flex-start;margin-top:16px;position:relative;z-index:1;flex-shrink:0}.timeline-card{background:var(--white);border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow-card);border:1px solid rgba(201,169,110,.15)}.tl-year{display:inline-block;font-family:var(--ff-display);font-size:.8rem;letter-spacing:.2em;color:var(--gold-dark);background:#c9a96e1f;padding:3px 12px;border-radius:20px;margin-bottom:8px}.tl-title{font-family:var(--ff-body);font-size:1.05rem;color:var(--brown);font-style:italic;margin-bottom:8px}.tl-desc{font-size:.9rem;color:var(--text-mid);line-height:1.7;font-family:var(--ff-sans)}.gallery-section{background:var(--cream-dark)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.gallery-item{position:relative;border-radius:var(--radius-sm);overflow:hidden;aspect-ratio:1;cursor:pointer}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.gallery-item:hover img{transform:scale(1.08)}.gallery-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#140a0580;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition);color:#fff;font-size:1.5rem}.gallery-item:hover .gallery-overlay{opacity:1}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#000000f2;display:none;align-items:center;justify-content:center}.lightbox.active{display:flex}.lightbox-img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:var(--radius-sm)}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;color:#fff;font-size:1.5rem;background:#ffffff1a;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;transition:background var(--transition)}.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{background:#ffffff40}.lightbox-close{top:20px;right:20px}.lightbox-prev{left:16px}.lightbox-next{right:16px}.maps-section{background:var(--cream)}.maps-tabs{display:flex;gap:12px;justify-content:center;margin-bottom:24px}.maps-tab{padding:10px 28px;border:1.5px solid var(--gold-light);border-radius:50px;font-size:.9rem;color:var(--text-mid);transition:all var(--transition);font-family:var(--ff-sans)}.maps-tab.active,.maps-tab:hover{background:var(--gold);border-color:var(--gold);color:#fff}.maps-panel{display:none}.maps-panel.active{display:block}.maps-panel iframe{border-radius:var(--radius);width:100%;box-shadow:var(--shadow-card)}.btn-maps{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:12px 24px;background:linear-gradient(135deg,var(--gold),var(--gold-dark));color:#fff;border-radius:50px;font-size:.9rem;transition:all var(--transition);box-shadow:0 4px 16px #c9a96e4d}.btn-maps:hover{transform:translateY(-2px);box-shadow:0 8px 24px #c9a96e66}.amplop-section{background:var(--cream-dark)}.amplop-intro{text-align:center;max-width:500px;margin:0 auto 36px;color:var(--text-mid);font-size:1rem;line-height:1.8}.rekening-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;max-width:640px;margin:0 auto}.rekening-card{background:var(--white);border-radius:var(--radius);padding:28px 24px;text-align:center;box-shadow:var(--shadow-card);border:1px solid rgba(201,169,110,.2);transition:transform var(--transition)}.rekening-card:hover{transform:translateY(-3px)}.rekening-bank{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:16px}.rekening-bank img{height:36px;width:auto;object-fit:contain}.bank-name{font-family:var(--ff-display);font-size:1rem;color:var(--brown);letter-spacing:.05em}.rek-norek{font-size:1.5rem;font-family:var(--ff-display);letter-spacing:.15em;color:var(--brown);margin-bottom:6px}.rek-atasnama{font-size:.85rem;color:var(--text-light);margin-bottom:16px;font-family:var(--ff-sans)}.btn-copy{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;border:1.5px solid var(--gold);border-radius:50px;color:var(--gold-dark);font-size:.85rem;transition:all var(--transition)}.btn-copy:hover,.btn-copy.copied{background:var(--gold);color:#fff}.ucapan-section{background:var(--cream)}.ucapan-form{background:var(--white);border-radius:var(--radius);padding:36px 32px;box-shadow:var(--shadow-card);border:1px solid rgba(201,169,110,.15);margin-bottom:36px}.form-group{margin-bottom:18px}.form-group label{display:block;font-size:.85rem;font-family:var(--ff-sans);color:var(--text-mid);margin-bottom:6px;letter-spacing:.05em}.btn-primary{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,var(--gold),var(--gold-dark));color:#fff;padding:14px 32px;border-radius:50px;font-size:1rem;box-shadow:0 6px 24px #c9a96e59;transition:all var(--transition);width:100%;justify-content:center}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 30px #c9a96e73}.ucapan-list{display:flex;flex-direction:column;gap:16px}.ucapan-bubble{background:var(--white);border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow-card);border-left:3px solid var(--gold);animation:fadeUp .4s ease}.ucapan-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.ucapan-nama{font-style:italic;font-size:1rem;color:var(--brown)}.ucapan-kehadiran{font-size:.78rem;padding:3px 10px;border-radius:20px;background:#c9a96e1f;color:var(--gold-dark);font-family:var(--ff-sans)}.ucapan-pesan{font-size:.9rem;color:var(--text-mid);line-height:1.7;font-family:var(--ff-sans)}.ucapan-time{font-size:.75rem;color:var(--text-light);margin-top:8px;font-family:var(--ff-sans)}.penutup-section{text-align:center;padding:100px 20px}.penutup-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(160deg,#2d1f0e,#1a0f05)}.penutup-section .arabic-text{color:var(--gold-light)}.penutup-section .arabic-source{color:#ffffff80}.penutup-text{max-width:560px;margin:0 auto 32px;color:#fffc;font-size:1rem;line-height:2}.closing-names{display:flex;align-items:center;justify-content:center;gap:16px;font-size:clamp(2rem,7vw,3.5rem);font-style:italic;color:var(--white)}.closing-names span:nth-child(2){font-family:var(--ff-display);font-size:clamp(1.2rem,4vw,2rem);color:var(--gold)}.site-footer{background:#0d0805;padding:28px 20px 16px;text-align:center;position:relative}.footer-logo{height:40px;width:auto;margin:0 auto 10px;object-fit:contain}.footer-text{font-size:.8rem;color:#ffffff73;font-family:var(--ff-sans)}.footer-brand{color:var(--gold);transition:color var(--transition)}.footer-brand:hover{color:var(--gold-light)}.admin-trigger{height:28px;width:100%;cursor:default;opacity:0;background:#c9a96e08;transition:opacity .3s ease;border-radius:4px;margin-top:8px;display:flex;align-items:center;justify-content:center}.admin-trigger:hover,.admin-trigger:active{opacity:1;background:#c9a96e14;cursor:pointer}.admin-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:8000;background:#000000b3;display:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.admin-overlay.active{display:block}.admin-panel{position:fixed;right:0;top:0;bottom:0;z-index:8001;width:min(480px,100vw);background:#1a1208;display:none;flex-direction:column;overflow:hidden;box-shadow:-8px 0 40px #0009;border-left:1px solid rgba(201,169,110,.2)}.admin-panel.active{display:flex}.admin-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(201,169,110,.2);background:#120c04}.admin-header h2{font-family:var(--ff-display);font-size:1.2rem;color:var(--gold);display:flex;align-items:center;gap:10px}.admin-close{color:#ffffff80;font-size:1.2rem;transition:color var(--transition)}.admin-close:hover{color:#fff}.admin-login{padding:60px 32px;text-align:center;color:#fff;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.admin-login-icon{font-size:3rem;color:var(--gold);margin-bottom:20px}.admin-login h3{font-size:1.4rem;margin-bottom:8px;font-family:var(--ff-body)}.admin-login p{color:#ffffff80;font-size:.9rem;margin-bottom:24px;font-family:var(--ff-sans)}.admin-form-group{margin-bottom:16px;text-align:left;width:100%}.admin-form-group label{display:block;font-size:.8rem;color:#fff9;margin-bottom:6px;font-family:var(--ff-sans);letter-spacing:.05em}.admin-form-group input,.admin-form-group select,.admin-form-group textarea{background:#ffffff0f;border-color:#c9a96e40;color:#fff}.admin-form-group input::placeholder{color:#ffffff4d}.admin-form-group input:focus,.admin-form-group select:focus,.admin-form-group textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px #c9a96e1a}.btn-admin-primary{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--gold),var(--gold-dark));color:#fff;padding:12px 24px;border-radius:8px;font-size:.9rem;transition:all var(--transition);width:100%;justify-content:center;margin-top:8px}.btn-admin-primary:hover{opacity:.9;transform:translateY(-1px)}.btn-admin-secondary{display:inline-flex;align-items:center;gap:8px;border:1.5px solid rgba(201,169,110,.4);color:var(--gold-light);padding:10px 20px;border-radius:8px;font-size:.85rem;transition:all var(--transition);width:100%;justify-content:center;margin-top:6px}.btn-admin-secondary:hover{background:#c9a96e1a}.btn-admin-danger{display:inline-flex;align-items:center;gap:8px;border:1.5px solid rgba(220,50,50,.5);color:#e07070;padding:10px 20px;border-radius:8px;font-size:.85rem;transition:all var(--transition);width:100%;justify-content:center}.btn-admin-danger:hover{background:#dc323226}.admin-login-err{color:#e07070;font-size:.85rem;margin-top:12px;font-family:var(--ff-sans)}.admin-dashboard{display:flex;flex-direction:column;flex:1;overflow:hidden}.admin-tabs{display:flex;overflow-x:auto;border-bottom:1px solid rgba(201,169,110,.2);background:#120c04;scrollbar-width:none}.admin-tabs::-webkit-scrollbar{display:none}.admin-tab{flex-shrink:0;padding:12px 16px;font-size:.8rem;color:#ffffff80;border-bottom:2px solid transparent;transition:all var(--transition);white-space:nowrap;font-family:var(--ff-sans)}.admin-tab.active,.admin-tab:hover{color:var(--gold);border-bottom-color:var(--gold)}.admin-panel-content{display:none;flex:1;overflow-y:auto;padding:24px;color:#fff}.admin-panel-content.active{display:block}.admin-panel-content h3{font-family:var(--ff-body);font-size:1.1rem;color:var(--gold-light);margin-bottom:16px}.admin-hint{font-size:.8rem;color:#ffffff73;line-height:1.6;font-family:var(--ff-sans);margin-bottom:16px}.admin-hint code{background:#ffffff14;padding:2px 6px;border-radius:4px;font-size:.75rem;color:var(--gold-light)}.admin-field-group{margin-bottom:16px}.admin-field-group label{display:block;font-size:.78rem;color:#ffffff8c;font-family:var(--ff-sans);margin-bottom:4px}.admin-field-group input,.admin-field-group textarea{background:#ffffff0f;border:1px solid rgba(201,169,110,.25);color:#fff;border-radius:6px;padding:8px 12px;font-size:.85rem;width:100%}.admin-field-group textarea{min-height:80px;resize:vertical}.dropzone{border:2px dashed rgba(201,169,110,.35);border-radius:var(--radius);padding:40px 20px;text-align:center;cursor:pointer;transition:all var(--transition);color:#fff6;margin-bottom:16px}.dropzone:hover,.dropzone.dragover{border-color:var(--gold);background:#c9a96e0f;color:var(--gold-light)}.dropzone i{font-size:2rem;margin-bottom:10px;display:block}.dropzone p{font-size:.85rem;font-family:var(--ff-sans)}.media-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.media-preview-item{aspect-ratio:1;border-radius:6px;overflow:hidden;position:relative}.media-preview-item img{width:100%;height:100%;object-fit:cover}.media-preview-item .remove-btn{position:absolute;top:4px;right:4px;background:#000000b3;color:#fff;border-radius:50%;width:22px;height:22px;font-size:.7rem;display:flex;align-items:center;justify-content:center;cursor:pointer}.admin-rek-item{background:#ffffff0d;border:1px solid rgba(201,169,110,.2);border-radius:var(--radius-sm);padding:16px;margin-bottom:12px}.admin-rek-item input{margin-bottom:8px}.admin-msg{font-size:.85rem;margin-top:12px;font-family:var(--ff-sans);padding:8px 12px;border-radius:6px}.admin-msg.success{background:#32c8641a;color:#6ee09a}.admin-msg.error{background:#dc32321a;color:#e07070}.toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%) translateY(20px);background:#140c04f2;color:var(--gold-light);padding:12px 28px;border-radius:50px;font-size:.9rem;font-family:var(--ff-sans);box-shadow:0 4px 24px #0006;border:1px solid rgba(201,169,110,.25);z-index:9000;opacity:0;pointer-events:none;transition:all .35s ease;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}@media(max-width:768px){:root{--section-pad: 60px 16px}.couple-grid{grid-template-columns:1fr;gap:16px}.couple-heart{font-size:2rem}.couple-photo-wrap{width:150px;height:180px}.acara-grid{grid-template-columns:1fr}.timeline:before{left:24px}.timeline-item{grid-template-columns:40px 1fr;gap:0 12px}.timeline-item.left .timeline-card,.timeline-item.right .timeline-card{grid-column:2;grid-row:1;text-align:left}.timeline-item.left .timeline-dot,.timeline-item.right .timeline-dot{grid-column:1;grid-row:1;margin-top:18px}.gallery-grid{grid-template-columns:repeat(2,1fr)}.countdown-item{min-width:70px;padding:16px 12px}.ucapan-form{padding:24px 16px}.admin-panel{width:100vw}.opening-names{flex-direction:column;gap:0}.groom-name,.bride-name{font-size:clamp(2rem,12vw,3.5rem)}}@media(max-width:400px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:8px}.countdown-grid{gap:4px}.countdown-sep{font-size:1.4rem}}@keyframes fadeUp{0%{opacity:0;transform:translateY(36px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeDown{0%{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes rotatePulse{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.1)}to{transform:rotate(360deg) scale(1)}}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 6px 24px #c9a96e59}50%{transform:scale(1.03);box-shadow:0 10px 36px #c9a96e8c}}@keyframes particleFall{0%{transform:translateY(-10px) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes petalsFloat{0%{transform:translateY(0) translate(0) rotate(0);opacity:.8}50%{transform:translateY(-40px) translate(15px) rotate(90deg);opacity:.5}to{transform:translateY(0) translate(0) rotate(180deg);opacity:.8}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes spinMusic{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,to{transform:translateY(0)}30%{transform:translateY(-6px)}60%{transform:translateY(-3px)}}.animate-fade-up{opacity:0;transform:translateY(36px);transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1)}.animate-fade-up.visible{opacity:1;transform:translateY(0)}.opening-content .animate-fade-up{animation:fadeUp .9s ease both;opacity:0}.opening-content .animate-fade-up.delay-1{animation-delay:.4s}.opening-content .animate-fade-up.delay-2{animation-delay:.9s}.opening-content .animate-fade-up.delay-3{animation-delay:1.4s}.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}.delay-3{transition-delay:.3s}.delay-4{transition-delay:.4s}.delay-5{transition-delay:.5s}.animate-pulse{animation:pulse 2.2s ease-in-out infinite}.animate-float{animation:float 4s ease-in-out infinite}.music-btn.playing i{animation:spinMusic 3s linear infinite}.cover-bg{animation:gradientShift 15s ease infinite;background-size:200% 200%}.particle{position:absolute;pointer-events:none;font-size:1rem;animation:particleFall linear infinite;opacity:.6}.shimmer-text{background:linear-gradient(90deg,var(--gold-dark) 0%,var(--gold-light) 40%,var(--gold) 60%,var(--gold-dark) 100%);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 3s linear infinite}.section{transition:background-color .5s ease}.rekening-card,.acara-card,.couple-card{will-change:transform}.timeline-item.left .timeline-card,.timeline-item.right .timeline-card{transition:opacity .6s ease,transform .6s ease}.timeline-item.left:not(.visible) .timeline-card{opacity:0;transform:translate(-30px)}.timeline-item.right:not(.visible) .timeline-card{opacity:0;transform:translate(30px)}.timeline-item.visible .timeline-card{opacity:1;transform:translate(0)}.ornament-divider{animation:fadeIn 1s ease both}.gallery-item{transition:transform .3s ease,box-shadow .3s ease}.gallery-item:hover{transform:scale(1.02);box-shadow:0 8px 30px #643c1440;z-index:2}.couple-photo-wrap{transition:transform .5s ease}.couple-card:hover .couple-photo-wrap{transform:scale(1.03)}.countdown-num{transition:transform .2s ease}.countdown-num.tick{animation:bounce .3s ease}.ucapan-bubble{animation:fadeUp .5s ease both}.admin-panel{transform:translate(100%);transition:transform .4s cubic-bezier(.4,0,.2,1);display:flex!important;pointer-events:none}.admin-panel.active{transform:translate(0);pointer-events:all}.lightbox{opacity:0;transition:opacity .3s ease;display:flex!important;pointer-events:none}.lightbox.active{opacity:1;pointer-events:all}.lightbox-img{transition:transform .3s ease,opacity .3s ease}.petal{position:absolute;pointer-events:none;font-size:1.2rem;color:var(--gold-light);opacity:.15;animation:petalsFloat ease-in-out infinite}.floral-corner{position:absolute;width:120px;height:120px;opacity:.08;background:url(../assets/images/floral-corner.png) center/contain no-repeat}.floral-corner.tl{top:0;left:0}.floral-corner.tr{top:0;right:0;transform:scaleX(-1)}.floral-corner.bl{bottom:0;left:0;transform:scaleY(-1)}.floral-corner.br{bottom:0;right:0;transform:scale(-1)}#scroll-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--gold-dark),var(--gold),var(--gold-light));z-index:9998;width:0%;transition:width .1s linear}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.animate-fade-up{opacity:1;transform:none}}
