:root{--bg-primary:#faf7f2;--bg-secondary:#f4efe6;--bg-tertiary:#ebe3d5;--bg-card:#faf6f0;--bg-dark:#231c18;--color-gold:#c5a059;--color-gold-light:#e5cd98;--color-gold-dark:#9a7736;--color-text-main:#2c221e;--color-text-muted:#6e5f56;--color-text-light:#948479;--color-accent:#8b4513;--color-white:#fff;--gold-gradient:linear-gradient(135deg, #bf953f 0%, #fcf6ba 25%, #b38728 50%, #fbf5b7 75%, #aa771c 100%);--gold-foil:linear-gradient(135deg, #c5a059 0%, #f3e5c8 50%, #b08842 100%);--paper-gradient:linear-gradient(180deg, #fdfbf7 0%, #faf6f0 100%);--envelope-inner-gradient:linear-gradient(180deg, #efe6d8 0%, #faf6f0 100%);--font-serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;--font-calligraphy:"Alex Brush", "Cormorant Garamond", cursive;--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--shadow-sm:0 2px 8px #2c221e0a;--shadow-md:0 8px 24px #2c221e14;--shadow-lg:0 16px 40px #2c221e1f;--shadow-xl:0 24px 60px #2c221e2e;--shadow-gold:0 8px 30px #c5a05940;--shadow-envelope:0 30px 70px -10px #231c1840;--transition-fast:.2s cubic-bezier(.4, 0, .2, 1);--transition-normal:.4s cubic-bezier(.4, 0, .2, 1);--transition-slow:.8s cubic-bezier(.16, 1, .3, 1)}@layer base{*,:before,:after{box-sizing:border-box}body{margin:0;padding:0}}html{scroll-behavior:smooth;-webkit-tap-highlight-color:transparent;font-size:16px}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--color-text-main);background-image:radial-gradient(#c5a0590a 1px,#0000 0);background-size:24px 24px;min-height:100vh;line-height:1.6;position:relative;overflow-x:hidden}::selection{background:var(--color-gold-light);color:var(--color-text-main)}h1,h2,h3,h4,.font-serif{font-family:var(--font-serif);letter-spacing:.02em;font-weight:600}.font-calligraphy{font-family:var(--font-calligraphy);font-weight:400}.gold-text{background:var(--gold-foil);-webkit-text-fill-color:transparent;-webkit-background-clip:text;display:inline-block}.sub-tag{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.25em;color:var(--color-gold-dark);font-size:.75rem;font-weight:600}.container{width:100%;max-width:1120px;margin:0 auto;padding:0 1.25rem}.container-narrow{max-width:800px}.luxury-card{background:var(--bg-card);box-shadow:var(--shadow-md);transition:transform var(--transition-normal), box-shadow var(--transition-normal);border:1px solid #c5a05940;border-radius:16px;padding:2.5rem 2rem;position:relative;overflow:hidden}.luxury-card:before{content:"";pointer-events:none;border:1px dashed #c5a05933;border-radius:12px;position:absolute;inset:6px}.arch-frame{border:2px solid var(--color-gold-light);box-shadow:var(--shadow-md);border-radius:200px 200px 16px 16px;overflow:hidden}.ornament-divider{color:var(--color-gold);justify-content:center;align-items:center;gap:1rem;margin:1.5rem 0;display:flex}.ornament-line{background:linear-gradient(90deg, transparent, var(--color-gold), transparent);width:80px;height:1px}.ornament-diamond{background-color:var(--color-gold);width:8px;height:8px;transform:rotate(45deg)}.btn-primary{background:var(--color-text-main);color:var(--bg-primary);border:1px solid var(--color-gold);font-family:var(--font-sans);letter-spacing:.08em;cursor:pointer;transition:all var(--transition-normal);border-radius:50px;justify-content:center;align-items:center;gap:.6rem;padding:.85rem 2.2rem;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 4px 15px #2c221e26}.btn-primary:hover{background:var(--color-gold-dark);color:var(--color-white);box-shadow:var(--shadow-gold);transform:translateY(-2px)}.btn-secondary{color:var(--color-text-main);border:1px solid var(--color-gold);font-family:var(--font-sans);letter-spacing:.08em;cursor:pointer;transition:all var(--transition-normal);background:0 0;border-radius:50px;justify-content:center;align-items:center;gap:.6rem;padding:.85rem 2.2rem;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-secondary:hover{background:var(--bg-secondary);border-color:var(--color-gold-dark);transform:translateY(-2px)}.section-padding{padding:5rem 0}@media (width<=768px){.section-padding{padding:3.5rem 0}}@keyframes fadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseGold{0%{box-shadow:0 0 #c5a05966}70%{box-shadow:0 0 0 15px #c5a05900}to{box-shadow:0 0 #c5a05900}}@keyframes floatGentle{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.animate-fade-in{animation:.8s ease-out forwards fadeIn}.animate-float{animation:4s ease-in-out infinite floatGentle}.opening-container{z-index:9999;perspective:1200px;background-color:#1e1714;background-image:radial-gradient(circle at 50% 30%,#e5cd9826 0%,#0000 60%),radial-gradient(#c5a0590d 1px,#0000 0);background-size:100% 100%,30px 30px;flex-direction:column;justify-content:center;align-items:center;transition:opacity 1s cubic-bezier(.4,0,.2,1),visibility 1s;display:flex;position:fixed;inset:0;overflow:hidden}.opening-container.revealed{opacity:0;visibility:hidden;pointer-events:none}.ambient-lighting{pointer-events:none;background:radial-gradient(circle,#e6d7c31f 0%,#c5a0590a 45%,#0000 70%);border-radius:50%;width:140vw;height:140vh;transition:transform 3.5s ease-out,opacity 3s ease-out;position:absolute}.opening-container.opening .ambient-lighting{opacity:.8;transform:scale(1.3)}.envelope-wrapper{width:min(90vw,420px);height:min(70vh,560px);transform-style:preserve-3d;cursor:pointer;transition:transform 1.2s cubic-bezier(.25,1,.5,1);position:relative}.envelope-body{background:var(--paper-gradient);box-shadow:var(--shadow-envelope);transform-style:preserve-3d;border:1px solid #c5a05959;border-radius:20px;flex-direction:column;justify-content:space-between;align-items:center;padding:2rem 1.5rem;display:flex;position:absolute;inset:0;overflow:hidden}.envelope-border{pointer-events:none;border:1px solid #c5a05966;border-radius:14px;position:absolute;inset:12px}.envelope-border:after{content:"";border:1px dashed #c5a05940;border-radius:10px;position:absolute;inset:4px}.corner-motif{width:36px;height:36px;color:var(--color-gold);opacity:.7;position:absolute}.corner-motif.top-left{top:18px;left:18px}.corner-motif.top-right{top:18px;right:18px;transform:scaleX(-1)}.corner-motif.bottom-left{bottom:18px;left:18px;transform:scaleY(-1)}.corner-motif.bottom-right{bottom:18px;right:18px;transform:scale(-1)}.envelope-flap-top{clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;height:48%;transform-style:preserve-3d;z-index:10;background:linear-gradient(#f3ebe0 0%,#e8dccb 100%);border-bottom:1px solid #c5a0594d;transition:transform 1.2s cubic-bezier(.4,0,.2,1);position:absolute;top:0;left:0;right:0;box-shadow:0 4px 15px #0000001a}.opening-container.opening .envelope-flap-top{z-index:2;transform:rotateX(170deg)}.seal-button{z-index:20;cursor:pointer;background:radial-gradient(circle,#d4af37 0%,#b8860b 60%,#8b6508 100%);border:3px solid #fff8e7;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:110px;height:110px;transition:all .5s cubic-bezier(.34,1.56,.64,1);animation:3s infinite pulseGold;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 25px #0000004d,inset 0 2px 4px #fff9}.seal-button:hover{transform:translate(-50%,-50%)scale(1.06);box-shadow:0 14px 30px #c5a05966,inset 0 2px 6px #fffc}.seal-inner{color:#3d2b0f;text-shadow:0 1px 1px #fff6;text-align:center;border:1px dashed #ffffffb3;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:90px;height:90px;padding:4px;display:flex}.seal-icon{color:#3d2b0f;width:22px;height:22px;margin-bottom:2px}.seal-text{font-family:var(--font-serif);letter-spacing:.12em;text-transform:uppercase;font-size:.7rem;font-weight:700}.opening-container.pressed .seal-button{transform:translate(-50%,-50%)scale(.92)}.opening-container.opening .seal-button{opacity:0;pointer-events:none;transform:translate(-50%,-180%)scale(.6)}.envelope-header{text-align:center;z-index:5;margin-top:2rem;transition:opacity .6s}.opening-container.opening .envelope-header{opacity:0}.envelope-tag{font-family:var(--font-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--color-gold-dark);margin-bottom:.5rem;font-size:.75rem;font-weight:600}.envelope-names{font-family:var(--font-serif);color:var(--color-text-main);font-size:2.2rem;font-weight:600;line-height:1.1}.envelope-names span{font-family:var(--font-calligraphy);color:var(--color-gold);margin:0 .2rem;font-size:2.6rem;font-weight:400}.envelope-footer{z-index:5;text-align:center;margin-bottom:1.5rem;transition:opacity .6s}.opening-container.opening .envelope-footer{opacity:0}.tap-prompt{font-family:var(--font-sans);letter-spacing:.25em;text-transform:uppercase;color:var(--color-text-muted);align-items:center;gap:.5rem;font-size:.8rem;animation:2.5s ease-in-out infinite floatGentle;display:flex}.inner-card{border:1px solid var(--color-gold-light);box-shadow:var(--shadow-lg);text-align:center;z-index:4;opacity:0;background:#fffdf9;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;padding:2rem;transition:transform 1.6s cubic-bezier(.16,1,.3,1),box-shadow 1.6s;display:flex;position:absolute;inset:16px;transform:translateY(0)}.opening-container.opening .inner-card{opacity:1;z-index:15;transform:translateY(-85px)scale(1.05);box-shadow:0 30px 60px #00000059}.reveal-floral{pointer-events:none;opacity:0;width:120px;height:120px;transition:opacity 1.2s .8s,transform 1.5s cubic-bezier(.16,1,.3,1) .8s;position:absolute}.opening-container.opening .reveal-floral.left{opacity:.85;transform:translate(-30px,-20px)rotate(-10deg)}.opening-container.opening .reveal-floral.right{opacity:.85;transform:translate(30px,-20px)rotate(10deg)}@media (width<=480px){.envelope-wrapper{width:90vw;height:480px}.envelope-names{font-size:1.8rem}.envelope-names span{font-size:2.2rem}.seal-button{width:96px;height:96px}}.hero-section{text-align:center;background:radial-gradient(circle at 50% 30%,#fffdf9 0%,#faf6f0 70%,#f5efe6 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:6rem 1.5rem 4rem;display:flex;position:relative;overflow:hidden}.hero-watermark{opacity:.04;pointer-events:none;width:500px;height:500px;color:var(--color-gold-dark);position:absolute}.hero-card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fdfbf7d9;border:1px solid #c5a0594d;border-radius:200px 200px 24px 24px;width:100%;max-width:760px;padding:4rem 2.5rem;position:relative;box-shadow:0 20px 50px #2c221e14}.hero-card:before{content:"";pointer-events:none;border:1px dashed #c5a05940;border-radius:190px 190px 18px 18px;position:absolute;inset:10px}.hero-islamic{font-family:var(--font-serif);letter-spacing:.15em;color:var(--color-gold-dark);margin-bottom:.5rem;font-size:1.6rem;font-weight:500}.hero-subtitle{font-family:var(--font-sans);letter-spacing:.25em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:2rem;font-size:.85rem;font-weight:600}.hero-names-wrapper{margin:1.5rem 0}.hero-groom-name,.hero-bride-name{font-family:var(--font-serif);color:var(--color-text-main);font-size:clamp(3.2rem,8vw,5.5rem);font-weight:600;line-height:1;display:block}.hero-ampersand{font-family:var(--font-calligraphy);color:var(--color-gold);margin:.2rem 0;font-size:clamp(3.5rem,9vw,6rem);line-height:.8;display:block}.hero-announcement-badge{border-top:1px solid var(--color-gold);border-bottom:1px solid var(--color-gold);margin-top:1.8rem;padding:.6rem 2.2rem;display:inline-block;position:relative}.hero-announcement-text{font-family:var(--font-serif);letter-spacing:.2em;text-transform:uppercase;color:var(--color-gold-dark);font-size:1.8rem;font-weight:600}.hero-date-location{font-family:var(--font-sans);letter-spacing:.15em;color:var(--color-text-muted);text-transform:uppercase;justify-content:center;align-items:center;gap:.8rem;margin-top:2rem;font-size:.95rem;display:flex}.hero-date-location .dot{background-color:var(--color-gold);border-radius:50%;width:4px;height:4px}.scroll-indicator{color:var(--color-gold-dark);letter-spacing:.2em;text-transform:uppercase;opacity:.8;flex-direction:column;align-items:center;gap:.4rem;font-size:.75rem;animation:2.5s infinite floatGentle;display:flex;position:absolute;bottom:1.5rem}@media (width<=600px){.hero-card{border-radius:120px 120px 20px 20px;padding:3rem 1.5rem}.hero-card:before{border-radius:110px 110px 14px 14px}}.couple-grid{grid-template-columns:1fr 1fr;align-items:center;gap:3rem;max-width:960px;margin:0 auto;display:grid}.couple-card{background:var(--bg-card);text-align:center;box-shadow:var(--shadow-md);transition:transform var(--transition-normal);border:1px solid #c5a0594d;border-radius:160px 160px 20px 20px;padding:1.5rem 1.5rem 2.5rem;position:relative}.couple-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-6px)}.couple-img-wrapper{border:2px solid var(--color-gold-light);border-radius:140px 140px 14px 14px;width:100%;height:380px;margin-bottom:1.5rem;overflow:hidden;box-shadow:inset 0 0 10px #0000001a}.couple-img{object-fit:cover;object-position:center top;width:100%;height:100%;transition:transform .8s}.couple-card:hover .couple-img{transform:scale(1.04)}.couple-name{font-family:var(--font-serif);color:var(--color-text-main);margin-bottom:.3rem;font-size:2.2rem}.couple-role{font-family:var(--font-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--color-gold-dark);margin-bottom:.8rem;font-size:.75rem;font-weight:600}.couple-desc{color:var(--color-text-muted);max-width:320px;margin:0 auto;font-size:.95rem;line-height:1.6}.family-banner{background:var(--bg-secondary);border:1px solid var(--color-gold-light);text-align:center;border-radius:20px;margin-top:4rem;padding:3rem 2rem;position:relative}@media (width<=768px){.couple-grid{grid-template-columns:1fr;gap:2.5rem}.couple-img-wrapper{height:320px}}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.8rem;max-width:1100px;margin:0 auto;display:grid}.gallery-item{background:var(--bg-card);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--transition-normal), box-shadow var(--transition-normal);border:1px solid #c5a05940;border-radius:16px;position:relative;overflow:hidden}.gallery-item.portrait{grid-row:span 2;height:480px}.gallery-item.landscape{height:230px}.gallery-item:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.gallery-img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.16,1,.3,1)}.gallery-item:hover .gallery-img{transform:scale(1.06)}.gallery-overlay{opacity:0;color:#fff;background:linear-gradient(#0000 40%,#231c18cc 100%);flex-direction:column;justify-content:flex-end;padding:1.5rem;transition:opacity .4s;display:flex;position:absolute;inset:0}.gallery-item:hover .gallery-overlay{opacity:1}.gallery-category{font-family:var(--font-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--color-gold-light);margin-bottom:.2rem;font-size:.7rem}.gallery-title{font-family:var(--font-serif);margin-bottom:.3rem;font-size:1.3rem;font-weight:600}.gallery-caption{opacity:.85;font-size:.82rem}.lightbox-modal{z-index:10000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#120e0cf0;justify-content:center;align-items:center;padding:2rem;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.lightbox-content{flex-direction:column;align-items:center;max-width:90vw;max-height:85vh;display:flex;position:relative}.lightbox-img{object-fit:contain;border:1px solid #c5a0594d;border-radius:8px;max-width:100%;max-height:72vh;box-shadow:0 20px 50px #00000080}.lightbox-info{text-align:center;color:#fff;margin-top:1rem}.lightbox-btn{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:all .2s;display:flex;position:absolute}.lightbox-btn:hover{background:var(--color-gold);color:#000}.lightbox-close{top:-20px;right:-20px}.lightbox-prev{top:50%;left:20px;transform:translateY(-50%)}.lightbox-next{top:50%;right:20px;transform:translateY(-50%)}@media (width<=768px){.gallery-grid{grid-template-columns:1fr;gap:1.2rem}.gallery-item.portrait,.gallery-item.landscape{grid-row:span 1;height:280px}.lightbox-prev{left:10px}.lightbox-next{right:10px}.lightbox-close{top:10px;right:10px}}
