@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600&family=Poppins:wght@300;400;500;600&family=Great+Vibes&display=swap";:root{--brown-darkest: #0d0905;--brown-dark: #1a120b;--brown-mid: #2c1a0e;--brown-warm: #3d2314;--brown-accent: #6b3a24;--sogan: #7a4f2d;--gold: #c9a84c;--gold-light: #e4c870;--gold-pale: #f0dea0;--cream: #f5ead8;--cream-dark: #dfd3c3;--cream-mid: #e8d9c0;--parchment: #d4b896;--text-dark: #1a120b;--text-mid: #3d2314;--text-light: #f5ead8;--font-serif: "Cormorant Garamond", Georgia, serif;--font-sans: "Poppins", sans-serif;--font-script: "Great Vibes", cursive}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--brown-dark);color:var(--cream);overflow-x:hidden;line-height:1.6}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--brown-dark)}::-webkit-scrollbar-thumb{background:var(--sogan);border-radius:10px}.opening-gate{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--brown-darkest);overflow:hidden}.gate-bg-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:brightness(.4) saturate(.85);z-index:0}.gate-bg-overlay{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 0%,var(--brown-darkest) 100%);z-index:1}.opening-gate .gate-content{position:relative;z-index:2;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.gate-gunungan{width:100px;object-fit:contain;filter:drop-shadow(0 0 30px rgba(201,168,76,.5))}.gate-label{font-family:var(--font-script);font-size:1.5rem;color:var(--gold-pale);letter-spacing:.2em}.gate-title{font-family:var(--font-script);font-size:clamp(2rem,5vw,3.5rem);color:var(--cream-dark);text-shadow:0 2px 20px rgba(0,0,0,.8);line-height:1.1}.gate-divider{width:120px;height:1px;background:linear-gradient(to right,transparent,var(--gold),transparent)}.gate-btn{margin-top:1rem;padding:.75rem 2.5rem;border:1px solid var(--gold);background:transparent;color:var(--gold-light);font-family:var(--font-sans);font-size:.75rem;letter-spacing:.3em;text-transform:uppercase;cursor:pointer;transition:all .4s;position:relative;overflow:hidden}.gate-btn:before{content:"";position:absolute;inset:0;background:var(--gold);transform:translate(-100%);transition:transform .4s}.gate-btn:hover:before{transform:translate(0)}.gate-btn span{position:relative;z-index:1}.gate-btn:hover span{color:var(--brown-darkest)}.particles-container{position:absolute;inset:0;pointer-events:none;overflow:hidden}.particle{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--gold);animation:floatParticle linear infinite;opacity:0}@keyframes floatParticle{0%{transform:translateY(100vh) scale(0);opacity:0}10%{opacity:.7}90%{opacity:.5}to{transform:translateY(-10vh) scale(1);opacity:0}}.app-wrapper{display:flex;min-height:100vh}.left-panel{position:sticky;top:0;width:45%;height:100vh;flex-shrink:0;background:var(--brown-darkest);overflow:hidden}.hero-image{width:100%;height:100%;object-fit:cover;object-position:top center;filter:brightness(.75) saturate(.85)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#0d090599,#0d09051a 40% 60%,#0d0905b3)}.hero-torn-top,.hero-torn-bottom{position:absolute;left:0;right:0;height:80px;z-index:2}.hero-torn-top{top:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0,0 L0,40 Q60,80 120,50 Q180,20 240,55 Q300,80 360,45 Q420,10 480,50 Q540,80 600,40 Q660,5 720,45 Q780,80 840,50 Q900,20 960,55 Q1020,80 1080,45 Q1140,10 1200,50 Q1260,80 1320,40 Q1380,5 1440,45 L1440,0 Z' fill='%230d0905'/%3E%3C/svg%3E");background-size:100% 100%;background-repeat:no-repeat}.hero-torn-bottom{bottom:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0,80 L0,40 Q60,0 120,30 Q180,60 240,25 Q300,0 360,35 Q420,70 480,30 Q540,0 600,40 Q660,75 720,35 Q780,0 840,30 Q900,60 960,25 Q1020,0 1080,35 Q1140,70 1200,30 Q1260,0 1320,40 Q1380,75 1440,35 L1440,80 Z' fill='%230d0905'/%3E%3C/svg%3E");background-size:100% 100%;background-repeat:no-repeat}.hero-caption{position:absolute;bottom:4rem;left:0;right:0;z-index:3;text-align:center;padding:0 2rem}.hero-caption .couple-names{font-family:var(--font-script);font-size:clamp(2rem,4vw,3.5rem);color:var(--gold-pale);text-shadow:0 2px 20px rgba(0,0,0,.8);line-height:1.1}.ampersand{display:block;font-family:var(--font-serif);font-size:1.5rem;font-style:italic;color:var(--gold);margin:.3rem 0}.hero-caption .wedding-date{margin-top:.8rem;font-family:var(--font-sans);font-size:.7rem;font-weight:300;letter-spacing:.4em;color:var(--cream-dark);text-transform:uppercase}.side-nav{position:absolute;right:1rem;top:50%;transform:translateY(-50%);z-index:4;display:flex;flex-direction:column;gap:1.2rem;align-items:center}.side-nav-dot{width:8px;height:8px;border-radius:50%;border:1px solid rgba(201,168,76,.5);cursor:pointer;transition:all .3s;position:relative}.side-nav-dot.active,.side-nav-dot:hover{background:var(--gold);border-color:var(--gold);box-shadow:0 0 10px #c9a84c99}.side-nav-dot .nav-label{position:absolute;right:1.5rem;top:50%;transform:translateY(-50%);white-space:nowrap;background:var(--brown-mid);color:var(--gold-light);font-size:.65rem;font-family:var(--font-sans);letter-spacing:.15em;text-transform:uppercase;padding:.3rem .7rem;border-radius:2px;border:1px solid rgba(201,168,76,.2);opacity:0;pointer-events:none;transition:opacity .2s}.side-nav-dot:hover .nav-label{opacity:1}.right-panel{flex:1;background:var(--brown-dark);overflow-y:auto}.section{min-height:100vh;padding:5rem 4rem;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.ornament-container{position:absolute;inset:0;pointer-events:none;z-index:1}.ornament-top-left{position:absolute;top:-5rem;width:65%}.ornament-top-right{position:absolute;top:-4rem;right:-25%;width:60%}.ornament-floating{position:absolute;width:10rem;animation:shake 4s ease-in-out infinite}@keyframes shake{0%,to{transform:rotate(0) translateY(0)}25%{transform:rotate(5deg) translateY(-5px)}50%{transform:rotate(0) translateY(0)}75%{transform:rotate(-5deg) translateY(-5px)}}.section-ornament{text-align:center;margin-bottom:2rem;position:relative;z-index:2}.section-ornament img{width:60px;opacity:.6;filter:sepia(1) hue-rotate(350deg) saturate(1.5) brightness(1.2)}.section-tag{font-family:var(--font-script);font-size:1.8rem;color:var(--gold);text-align:center;margin-bottom:-.5rem;position:relative;z-index:2}.section-title{font-family:var(--font-serif);font-size:clamp(2.2rem,5vw,3.8rem);font-weight:600;text-align:center;line-height:1.1;letter-spacing:.02em;position:relative;z-index:2;background:linear-gradient(to bottom,var(--gold-pale),var(--gold-light));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.section-divider{display:flex;align-items:center;gap:1rem;margin:1.5rem auto;width:fit-content;position:relative;z-index:2}.section-divider .line{width:60px;height:1px;background:linear-gradient(to right,transparent,var(--gold))}.section-divider .line.right{background:linear-gradient(to left,transparent,var(--gold))}.section-divider .diamond{width:6px;height:6px;background:var(--gold);transform:rotate(45deg);flex-shrink:0}.couple-section{background:var(--brown-dark)}.couple-cards{display:flex;flex-direction:column;gap:2.5rem;margin-top:2rem}.couple-card{display:flex;align-items:center;gap:1.5rem;padding:1rem;border:1px solid rgba(201,168,76,.15);background:#c9a84c08;position:relative}.couple-card:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:linear-gradient(to bottom,var(--gold),transparent)}.couple-card.bride:before{left:auto;right:0;background:linear-gradient(to bottom,var(--gold),transparent)}.couple-card.bride{flex-direction:row-reverse;text-align:right}.couple-avatar{width:130px;height:130px;border-radius:50%;border:3px solid var(--gold);padding:5px;background:var(--brown-mid);box-shadow:0 0 20px #c9a84c33;position:relative;z-index:2;flex-shrink:0;overflow:hidden}.couple-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;transition:transform .5s ease}.couple-avatar:hover img{transform:scale(1.1)}.couple-card:hover .couple-avatar{border-color:var(--gold-light);box-shadow:0 0 30px #c9a84c66}.couple-role{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:.3rem}.couple-fullname{font-family:var(--font-serif);font-size:1.5rem;font-weight:500;color:var(--cream);line-height:1.2}.couple-parents{font-size:.75rem;color:var(--cream-dark);margin-top:.4rem;line-height:1.5}.couple-parents strong{color:var(--gold-pale);font-weight:400}.couple-ig{display:inline-flex;align-items:center;gap:.3rem;margin-top:.5rem;font-size:.7rem;color:var(--gold);text-decoration:none;letter-spacing:.1em;transition:color .3s}.couple-ig:hover{color:var(--gold-light)}.ampersand-divider{text-align:center;font-family:var(--font-script);font-size:3rem;color:var(--gold);opacity:.6;margin:.5rem 0}.gallery-section{background:var(--brown-mid)}.gallery-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:120px;gap:.75rem;margin-top:2rem}.gallery-item{overflow:hidden;position:relative;cursor:pointer;border-radius:8px;border:1px solid rgba(201,168,76,.1)}.gallery-item:nth-child(1){grid-column:span 6;grid-row:span 3}.gallery-item:nth-child(2){grid-column:span 3;grid-row:span 2}.gallery-item:nth-child(3){grid-column:span 3;grid-row:span 2}.gallery-item:nth-child(4){grid-column:span 3;grid-row:span 2}.gallery-item:nth-child(5){grid-column:span 3;grid-row:span 2}@media(max-width:768px){.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}.gallery-item:nth-child(1){grid-column:span 2;grid-row:span 2}.gallery-item:nth-child(2){grid-column:span 1;grid-row:span 1}.gallery-item:nth-child(3){grid-column:span 1;grid-row:span 1}.gallery-item:nth-child(4){grid-column:span 1;grid-row:span 1}.gallery-item:nth-child(5){grid-column:span 1;grid-row:span 1}}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.4,0,.2,1);filter:brightness(.7) saturate(.8)}.gallery-item:hover img{transform:scale(1.1);filter:brightness(.9) saturate(1)}.gallery-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(13,9,5,.8) 0%,transparent 60%);opacity:.4;transition:opacity .5s}.gallery-item:hover .gallery-overlay{opacity:.2}.gallery-quote{text-align:center;margin-top:2rem;font-family:var(--font-serif);font-style:italic;font-size:1.1rem;color:var(--cream-dark);line-height:1.8}.gallery-quote:before,.gallery-quote:after{content:'"';font-size:2rem;color:var(--gold);opacity:.5}.date-section{background:var(--cream-mid);color:var(--text-dark)}.date-section .section-tag{color:var(--sogan)}.date-section .section-title{color:var(--text-dark)}.date-section .line,.date-section .diamond,.date-section .line.right{background:var(--sogan)}.date-parchment{background:var(--cream);border:1px solid var(--parchment);padding:2rem;margin-top:2rem;position:relative;box-shadow:0 4px 30px #3c1e0a26}.date-parchment:before{content:"";position:absolute;inset:6px;border:1px solid rgba(122,79,45,.2);pointer-events:none}.event-block{text-align:center;padding:1.5rem;border-bottom:1px solid rgba(122,79,45,.2)}.event-block:last-child{border-bottom:none}.event-name{font-size:.65rem;letter-spacing:.35em;text-transform:uppercase;color:var(--sogan);margin-bottom:.5rem}.event-day{font-family:var(--font-serif);font-size:2.5rem;font-weight:600;color:var(--text-dark);line-height:1}.event-date-full{font-family:var(--font-serif);font-size:1.2rem;color:var(--sogan);margin:.3rem 0}.event-time-place{font-size:.75rem;color:var(--text-mid);margin-top:.3rem;line-height:1.6}.countdown{display:flex;justify-content:center;gap:1rem;margin-top:2rem}.countdown-item{text-align:center;min-width:60px}.countdown-num{font-family:var(--font-serif);font-size:2.5rem;font-weight:600;color:var(--text-dark);line-height:1;display:block}.countdown-label{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sogan);display:block;margin-top:.2rem}.countdown-sep{font-family:var(--font-serif);font-size:2rem;color:var(--sogan);align-self:flex-start;margin-top:.2rem}.location-section{background:var(--brown-warm)}.location-card{margin-top:2rem;border:1px solid rgba(201,168,76,.2);overflow:hidden}.location-map{width:100%;height:220px;object-fit:cover;filter:sepia(.4) saturate(.8)}.map-embed{width:100%;height:220px;border:none;filter:sepia(.4) saturate(.8)}.location-info{padding:1.5rem;background:#0d09054d}.location-name{font-family:var(--font-serif);font-size:1.5rem;color:var(--cream);margin-bottom:.5rem}.location-address{font-size:.8rem;color:var(--cream-dark);line-height:1.7}.location-btn{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;padding:.6rem 1.5rem;border:1px solid var(--gold);color:var(--gold);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;transition:all .3s}.location-btn:hover{background:var(--gold);color:var(--brown-darkest)}.wishes-section{background:var(--brown-darkest)}.wishes-form{margin-top:2rem;display:flex;flex-direction:column;gap:1rem}.wishes-form input,.wishes-form textarea{background:#ffffff0a;border:1px solid rgba(201,168,76,.2);color:var(--cream);padding:.8rem 1rem;font-family:var(--font-sans);font-size:.85rem;resize:none;outline:none;transition:border-color .3s}.wishes-form input::placeholder,.wishes-form textarea::placeholder{color:#f5ead84d}.wishes-form input:focus,.wishes-form textarea:focus{border-color:var(--gold)}.wishes-btn{padding:.8rem;background:transparent;border:1px solid var(--gold);color:var(--gold-light);font-family:var(--font-sans);font-size:.75rem;letter-spacing:.25em;text-transform:uppercase;cursor:pointer;transition:all .3s}.wishes-btn:hover{background:var(--gold);color:var(--brown-darkest)}.wishes-list{margin-top:2rem;display:flex;flex-direction:column;gap:1rem;max-height:320px;overflow-y:auto}.wish-item{padding:1rem 1.2rem;border-left:2px solid var(--gold);background:#c9a84c0a}.wish-name{font-family:var(--font-serif);font-size:1rem;color:var(--gold-light);margin-bottom:.3rem}.wish-message{font-size:.8rem;color:var(--cream-dark);line-height:1.6}.music-btn{position:fixed;top:1.5rem;left:1.5rem;z-index:1000;width:44px;height:44px;border-radius:50%;background:#0d0905b3;border:1px solid rgba(201,168,76,.4);color:var(--gold);display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s;font-size:1rem}.music-btn:hover{border-color:var(--gold);box-shadow:0 0 15px #c9a84c4d}.music-btn.playing{animation:rotatePulse 4s linear infinite}@keyframes rotatePulse{0%{box-shadow:0 0 5px #c9a84c4d}50%{box-shadow:0 0 20px #c9a84c99}to{box-shadow:0 0 5px #c9a84c4d}}.bg-batik-pattern{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23c9a84c' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");pointer-events:none;opacity:.5}@media(max-width:768px){.app-wrapper{flex-direction:column}.left-panel{position:relative;width:100%;height:60vh;flex-shrink:0}.right-panel{min-height:100vh}.section{padding:4rem 1.5rem;min-height:auto}.side-nav{display:none}}
