:root{--bg:#050505;--text:#f5f0eb;--text-soft:#f5f0ebd9;--text-dim:#f5f0eb73;--text-muted:#f5f0eb40;--gold:#c9a96e;--gold-light:#dbbf8a;--gold-glow:#c9a96e59;--gold-soft:#c9a96e1f;--rose:#b4787826;--glass-bg:#0c0c0ceb;--glass-border:#c9a96e1f;--glass-border-light:#f5f0eb0f;--overlay:#000000bf;--font-display:"Cinzel","Playfair Display",Georgia,serif;--font-serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;--font-sans:"Outfit","Inter",-apple-system,system-ui,sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100dvh;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation;overscroll-behavior:none;-webkit-text-size-adjust:100%;background:radial-gradient(80% 50% at 50% 0,#c9a96e0a 0%,#0000 60%),radial-gradient(60% 40% at 50% 100%,#b4787808 0%,#0000 50%),radial-gradient(100% 100%,#0a0908 0%,#050505 100%);overflow:hidden}body{position:fixed;inset:0}.no-select{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.ambient-bg{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.ambient-orb{opacity:0;will-change:transform,opacity;border-radius:50%;position:absolute}.ambient-orb--1{filter:blur(60px);background:radial-gradient(circle,#c9a96e59,#c9a96e1a 45%,#0000 70%);width:min(500px,100vw);height:min(500px,100vw);top:10%;left:20%}.ambient-orb--2{filter:blur(80px);background:radial-gradient(circle,#b4787833,#b478780d 50%,#0000 70%);width:min(400px,80vw);height:min(400px,80vw);bottom:15%;right:10%}.ambient-orb--3{filter:blur(100px);background:radial-gradient(circle,#f5f0eb1a,#0000 60%);width:min(350px,70vw);height:min(350px,70vw);top:50%;left:-5%}.ambient-orb--4{filter:blur(70px);background:radial-gradient(circle,#c9a96e26,#0000 60%);width:min(250px,55vw);height:min(250px,55vw);top:5%;right:15%}.film-grain{z-index:1;pointer-events:none;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");background-size:128px 128px;position:fixed;inset:0}.vignette{z-index:2;pointer-events:none;background:radial-gradient(#0000 40%,#00000080 100%);position:fixed;inset:0}.intro-screen{z-index:100;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.intro-glow{background:radial-gradient(circle,var(--gold-glow),#c9a96e14 50%,transparent 70%);filter:blur(40px);opacity:0;will-change:opacity,transform;border-radius:50%;width:min(350px,80vw);height:min(350px,80vw);position:absolute}.intro-tagline{font-family:var(--font-sans);letter-spacing:.35em;text-transform:uppercase;color:var(--text-dim);opacity:0;will-change:opacity;margin-bottom:2rem;font-size:clamp(.6rem,2.5vw,.75rem);font-weight:200}.intro-name{font-family:var(--font-display);letter-spacing:.12em;color:var(--text);font-size:clamp(3rem,13vw,6rem);font-weight:400;line-height:1.1;display:flex;overflow:hidden}.intro-name .letter{opacity:0;transform-origin:bottom;will-change:transform,opacity;display:inline-block;transform:translateY(30px)rotateX(40deg)}.intro-ampersand{font-family:var(--font-serif);color:var(--gold);opacity:0;will-change:transform,opacity;text-shadow:0 0 20px var(--gold-glow);margin:.6rem 0;font-size:clamp(1.5rem,6vw,2.5rem);font-style:italic;font-weight:300}.enter-screen{z-index:200;cursor:pointer;background:#000;justify-content:center;align-items:center;transition:opacity .8s,visibility .8s;display:flex;position:fixed;inset:0}.enter-screen.exiting{opacity:0;visibility:hidden;pointer-events:none}.enter-content{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;animation:1.5s ease-out fadeIn;display:flex}.enter-names{font-family:var(--font-display);color:var(--text);letter-spacing:.05em;font-size:clamp(2rem,8vw,3.5rem)}.enter-tagline{font-family:var(--font-serif);color:var(--gold);font-size:clamp(1rem,4vw,1.5rem);font-style:italic}.enter-cta{font-family:var(--font-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--text-dim);border:1px solid #f5f0eb33;border-radius:50px;margin-top:2rem;padding:.8rem 2rem;font-size:.7rem;transition:all .3s}.enter-screen:hover .enter-cta{border-color:var(--gold);color:var(--gold);background:#c9a96e1a}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}.shimmer-text{background:linear-gradient(90deg,var(--text)0%,var(--text)35%,var(--gold-light)50%,var(--text)65%,var(--text)100%);-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:6s ease-in-out 2s infinite shimmer}.main-wrapper{z-index:3;flex-direction:column;justify-content:center;align-items:center;gap:0;width:100%;height:100dvh;padding:2.5rem 1.5rem;display:flex;position:relative}.main-names{text-align:center;margin-bottom:.25rem}.main-name{font-family:var(--font-display);letter-spacing:.1em;color:var(--text);opacity:0;font-size:clamp(2.8rem,11vw,5rem);font-weight:400;line-height:1.15}.main-ampersand{font-family:var(--font-serif);color:var(--gold);opacity:0;margin:.15rem 0;font-size:clamp(1.2rem,4vw,1.8rem);font-style:italic;font-weight:300;display:block}.main-tagline{font-family:var(--font-sans);letter-spacing:.4em;text-transform:uppercase;color:var(--text-dim);opacity:0;margin-top:.5rem;margin-bottom:.75rem;font-size:clamp(.55rem,2.2vw,.7rem);font-weight:200}.main-divider-wrap{opacity:0;justify-content:center;align-items:center;gap:1rem;margin:.6rem auto 1rem;display:flex}.main-divider-line{background:linear-gradient(90deg,transparent,var(--gold),transparent);width:40px;height:1px}.main-divider-diamond{background:var(--gold);flex-shrink:0;width:5px;height:5px;transform:rotate(45deg)}.main-date-block{text-align:center;opacity:0}.main-date-day{font-family:var(--font-sans);letter-spacing:.45em;text-transform:uppercase;color:var(--text-dim);margin-bottom:.3rem;font-size:clamp(.58rem,2.3vw,.7rem);font-weight:200}.main-date-full{font-family:var(--font-display);letter-spacing:.1em;color:var(--text);text-shadow:0 0 25px #c9a96e1a;font-size:clamp(1.4rem,5.5vw,1.9rem);font-weight:400}.main-venue{text-align:center;opacity:0;margin-top:.6rem}.main-venue-name{font-family:var(--font-serif);color:var(--gold-light);letter-spacing:.04em;text-shadow:0 0 20px #c9a96e1f;font-size:clamp(1.05rem,4vw,1.3rem);font-style:italic;font-weight:400}.main-venue-address{font-family:var(--font-sans);color:var(--text-dim);letter-spacing:.15em;text-transform:uppercase;margin-top:.25rem;font-size:clamp(.55rem,2vw,.65rem);font-weight:200}.countdown{opacity:0;justify-content:center;align-items:flex-start;gap:clamp(.8rem,4vw,1.8rem);margin:1.4rem 0 .4rem;display:flex}.countdown-unit{text-align:center;min-width:clamp(3rem,12vw,4.5rem);position:relative}.countdown-value-wrap{border-bottom:1px solid #c9a96e1f;padding-bottom:.3rem;position:relative;overflow:hidden}.countdown-value{font-family:var(--font-display);letter-spacing:.04em;color:var(--text);will-change:transform,opacity;text-shadow:0 0 20px #c9a96e0f;font-size:clamp(1.5rem,6vw,2.5rem);font-weight:400;line-height:1;display:block}.countdown-label{font-family:var(--font-sans);letter-spacing:.35em;text-transform:uppercase;color:var(--text-muted);margin-top:.45rem;font-size:clamp(.42rem,1.5vw,.55rem);font-weight:300}.countdown-separator{font-family:var(--font-sans);color:var(--gold);opacity:.3;align-self:flex-start;margin-top:.4rem;font-size:clamp(.7rem,2.5vw,1rem);font-weight:200}.actions{opacity:0;justify-content:center;align-items:center;gap:clamp(1.5rem,6vw,3rem);margin-top:1.8rem;display:flex}.action-btn{cursor:pointer;color:var(--text-dim);-webkit-tap-highlight-color:transparent;will-change:transform;background:0 0;border:none;flex-direction:column;align-items:center;gap:.6rem;padding:.5rem;transition:color .4s,transform .3s;display:flex;position:relative}.action-btn:before{content:"";opacity:0;pointer-events:none;background:radial-gradient(circle,#c9a96e33,#0000 70%);border-radius:50%;width:60px;height:60px;transition:opacity .4s;position:absolute;top:0;left:50%;transform:translate(-50%)}.action-btn:hover:before{opacity:1;animation:1.5s ease-in-out infinite glowPulse}@keyframes glowPulse{0%,to{opacity:.6;transform:translate(-50%)scale(1)}50%{opacity:1;transform:translate(-50%)scale(1.3)}}.action-btn:hover,.action-btn:active{color:var(--gold)}.action-btn:hover{transform:translateY(-2px)}.action-btn:active{transform:scale(.92)}.action-btn svg{stroke:currentColor;fill:none;stroke-width:1.2px;width:clamp(22px,5.5vw,28px);height:clamp(22px,5.5vw,28px);transition:all .4s,transform .3s}.action-btn .action-icon-heart{fill:currentColor;stroke:none}.action-btn:hover svg{stroke:var(--gold);filter:drop-shadow(0 0 8px var(--gold-glow))drop-shadow(0 0 20px #c9a96e26);transform:scale(1.15)}.action-btn:active svg{stroke:var(--gold);filter:drop-shadow(0 0 12px var(--gold-glow));transform:scale(.9)}.action-btn:hover .action-icon-heart,.action-btn:active .action-icon-heart{fill:var(--gold)}.action-btn-label{font-family:var(--font-sans);letter-spacing:.2em;text-transform:uppercase;color:inherit;font-size:clamp(.5rem,1.8vw,.6rem);font-weight:300;transition:color .4s,text-shadow .4s}.action-btn:hover .action-btn-label{text-shadow:0 0 10px var(--gold-glow)}.sheet-overlay{z-index:200;background:var(--overlay);-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;will-change:opacity;position:fixed;inset:0}.sheet-overlay.active{pointer-events:auto}.bottom-sheet{z-index:201;background:var(--glass-bg);-webkit-backdrop-filter:blur(40px)saturate(1.4);border-top:1px solid var(--glass-border);padding:1rem 1.5rem calc(env(safe-area-inset-bottom,0px) + 2rem);will-change:transform;border-radius:24px 24px 0 0;max-height:70dvh;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%)}.sheet-handle{background:#f5f0eb1f;border-radius:2px;width:32px;height:3px;margin:0 auto 1.5rem}.sheet-title{font-family:var(--font-serif);text-align:center;letter-spacing:.03em;color:var(--text);margin-bottom:.3rem;font-size:clamp(1.4rem,5vw,1.8rem);font-weight:400}.sheet-subtitle{font-family:var(--font-sans);color:var(--text-dim);text-align:center;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1.8rem;font-size:clamp(.65rem,2.2vw,.78rem);font-weight:300}.sheet-btn{border:1px solid var(--glass-border);width:100%;color:var(--text-soft);font-family:var(--font-sans);letter-spacing:.08em;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#c9a96e0f;border-radius:14px;justify-content:center;align-items:center;gap:.7rem;padding:1rem 1.5rem;font-size:clamp(.72rem,2.6vw,.85rem);font-weight:300;text-decoration:none;transition:all .35s;display:flex}.sheet-btn:hover,.sheet-btn:active{color:var(--gold-light);background:#c9a96e1f;border-color:#c9a96e40}.sheet-btn+.sheet-btn{margin-top:.7rem}.sheet-btn svg{width:18px;height:18px;stroke:var(--gold);fill:none;stroke-width:1.2px;flex-shrink:0}.sheet-divider-text{font-family:var(--font-sans);color:var(--text-muted);text-align:center;letter-spacing:.2em;text-transform:uppercase;margin:.8rem 0;font-size:.6rem;font-weight:200}.celebrate-message{z-index:150;font-family:var(--font-serif);color:var(--gold-light);text-align:center;white-space:nowrap;opacity:0;pointer-events:none;will-change:opacity,transform;text-shadow:0 0 24px #c9a96e4d;background:radial-gradient(#0006,#0000 80%);border-radius:100px;padding:1rem 2rem;font-size:clamp(.95rem,3.5vw,1.2rem);font-style:italic;font-weight:300;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.confetti-canvas{z-index:140;pointer-events:none;position:fixed;inset:0}.sound-toggle{z-index:50;border:1px solid var(--glass-border-light);-webkit-backdrop-filter:blur(16px);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#0c0c0cb3;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;transition:border-color .4s,box-shadow .4s;display:flex;position:fixed;top:1.2rem;right:1.2rem;opacity:1!important}.sound-toggle:hover,.sound-toggle:active{border-color:var(--glass-border)}.sound-toggle.active{border-color:#c9a96e33;box-shadow:0 0 12px #c9a96e14}.sound-toggle svg{width:15px;height:15px;stroke:var(--text-muted);fill:none;stroke-width:1.5px;transition:stroke .4s}.sound-toggle.active svg{stroke:var(--gold)}.guestbook-section{text-align:center;z-index:10;border-top:1px solid #c9a96e33;border-bottom:1px solid #c9a96e33;width:100%;max-width:600px;margin:4rem auto;padding:2rem;position:relative}.guestbook-title{font-family:var(--font-display);color:var(--gold);letter-spacing:.05em;margin-bottom:2rem;font-size:clamp(1.8rem,5vw,2.5rem)}.guestbook-form{flex-direction:column;gap:1.5rem;display:flex}.guestbook-input,.guestbook-textarea{color:var(--text);font-family:var(--font-sans);background:#ffffff08;border:1px solid #c9a96e4d;border-radius:4px;padding:1rem;font-size:1rem;transition:all .3s}.guestbook-input:focus,.guestbook-textarea:focus{border-color:var(--gold);background:#c9a96e14;outline:none;box-shadow:0 0 15px #c9a96e0d}.guestbook-textarea{resize:vertical;min-height:120px}.guestbook-btn{border:1px solid var(--gold);color:var(--gold);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.2em;cursor:pointer;background:0 0;align-self:center;margin-top:1rem;padding:1rem 3rem;transition:all .3s;position:relative;overflow:hidden}.guestbook-btn:hover{background:var(--gold);color:#000;box-shadow:0 0 20px var(--gold-glow)}.guestbook-success{color:var(--gold);font-family:var(--font-serif);margin-top:2rem;font-size:1.5rem;font-style:italic;animation:1s fadeIn}.guestbook-trigger{z-index:90;border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);cursor:pointer;background:#0c0c0c99;border-radius:50%;justify-content:center;align-items:center;width:54px;height:54px;transition:all .4s cubic-bezier(.175,.885,.32,1.275);display:flex;position:fixed;bottom:2rem;right:1.5rem;box-shadow:0 4px 20px #0000004d}.guestbook-trigger:hover{border-color:var(--gold);background:#c9a96e1a;transform:scale(1.1);box-shadow:0 0 25px #c9a96e33}.guestbook-trigger svg{width:26px;height:26px;stroke:var(--gold);fill:none;stroke-width:1.5px}.lang-toggle{top:calc(env(safe-area-inset-top,0px) + 60px);z-index:100;border:1px solid var(--glass-border-light);-webkit-backdrop-filter:blur(16px);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#0c0c0cb3;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;transition:border-color .4s;display:flex;position:fixed;right:16px}.lang-toggle:hover,.lang-toggle:active{border-color:var(--glass-border)}.lang-toggle-text{color:var(--text-soft);letter-spacing:0;font-size:.7rem;font-weight:500;line-height:1}[dir=rtl] .main-tagline,[dir=rtl] .main-venue-address,[dir=rtl] .main-date-day,[dir=rtl] .event-day-name,[dir=rtl] .countdown-label,[dir=rtl] .action-btn-label,[dir=rtl] .sheet-title,[dir=rtl] .sheet-subtitle,[dir=rtl] .sheet-btn,[dir=rtl] .event-venue-name,[dir=rtl] .event-venue-address{font-family:"Tajawal",var(--font-serif);letter-spacing:0}[dir=rtl] .main-venue-name{font-family:"Tajawal",var(--font-serif);letter-spacing:0;font-style:normal}[dir=rtl] .main-name{font-family:"Tajawal",var(--font-serif);font-size:clamp(2.8rem,13vw,5.5rem);font-weight:700;line-height:1.3}[dir=rtl] .main-tagline{font-size:clamp(.68rem,2.8vw,.88rem);line-height:1.8}[dir=rtl] .main-date-full{font-size:clamp(1.65rem,6.5vw,2.2rem);line-height:1.4}[dir=rtl] .main-date-day{font-size:clamp(.68rem,2.7vw,.82rem)}[dir=rtl] .main-venue-name{font-size:clamp(1.25rem,4.8vw,1.55rem);line-height:1.5}[dir=rtl] .main-venue-address{font-size:clamp(.62rem,2.3vw,.75rem)}[dir=rtl] .countdown-value{font-size:clamp(1.8rem,8vw,3rem)}[dir=rtl] .countdown-label{font-size:clamp(.5rem,1.8vw,.65rem)}[dir=rtl] .action-btn-label{font-size:clamp(.58rem,2vw,.7rem)}[dir=rtl] .intro-name,[dir=rtl] .intro-tagline{font-family:"Tajawal",var(--font-serif);letter-spacing:0}[dir=rtl] .intro-name{font-size:clamp(3rem,14vw,6rem);line-height:1.3}[dir=rtl] .intro-tagline{font-size:clamp(.7rem,2.8vw,.9rem)}[dir=rtl] .sound-toggle{left:16px;right:auto}[dir=rtl] .lang-toggle{left:16px;right:auto;top:calc(env(safe-area-inset-top,0px) + 60px)}[dir=rtl] .sound-toggle{left:16px;top:calc(env(safe-area-inset-top,0px) + 16px)}@media (max-height:680px){.main-wrapper{padding:1.5rem 1rem}.main-name{font-size:clamp(2rem,9vw,3.5rem)}.main-tagline{margin-top:.3rem;margin-bottom:.5rem}.countdown{gap:clamp(.6rem,3vw,1.2rem);margin:.6rem 0 .2rem}.countdown-value{font-size:clamp(1.5rem,6vw,2.2rem)}.main-divider-wrap{margin:.4rem auto .6rem}.actions{margin-top:1rem}}@media (max-height:600px){.main-name{font-size:clamp(1.6rem,7vw,2.5rem)}.main-tagline{display:none}.countdown-value{font-size:clamp(1.3rem,5vw,1.8rem)}.countdown-unit{min-width:clamp(2rem,10vw,3rem)}.main-divider-wrap{margin:.3rem auto .5rem}.main-venue{margin-top:.3rem}.main-date-full{font-size:clamp(1rem,4vw,1.3rem)}}
