:root{--cream:#f7f1e6;--cream-deep:#efe5d2;--parchment:#fbf7ee;--gold:#c9a24b;--gold-soft:#e2c98a;--gold-deep:#a8842f;--ink:#3a3329;--ink-soft:#6b6052;--stone:#8d8475;--blush:#e9d9d2;--shadow:#3a33292e;--font-script:"Great Vibes", cursive;--font-serif:"Cormorant Garamond", Georgia, serif;--font-display:"Cinzel", serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-serif);color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overflow-x:hidden}h1,h2,h3{font-weight:500;line-height:1.15}p{line-height:1.7}a{color:inherit}img{max-width:100%;display:block}::selection{background:var(--gold-soft);color:var(--ink)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}html[dir=rtl]{--font-script:"Aref Ruqaa", "Amiri", serif;--font-serif:"Amiri", "Cormorant Garamond", serif;--font-display:"Aref Ruqaa", "Amiri", serif}html[dir=rtl] .eyebrow,html[dir=rtl] .hero__pre,html[dir=rtl] .hero__date,html[dir=rtl] .card__label,html[dir=rtl] .footer__sub,html[dir=rtl] .countdown__label{letter-spacing:0}.section{z-index:1;padding:clamp(4rem,10vw,9rem) 1.5rem;position:relative}.section__inner{max-width:1040px;margin:0 auto}.eyebrow{font-family:var(--font-display);letter-spacing:.35em;text-transform:uppercase;color:var(--gold-deep);text-align:center;font-size:.8rem}.section__title{font-family:var(--font-script);color:var(--ink);text-align:center;margin:.3rem 0 .6rem;font-size:clamp(2.8rem,7vw,4.8rem);font-weight:400}.divider{max-width:240px;color:var(--gold);justify-content:center;align-items:center;gap:.8rem;margin:0 auto 2.5rem;display:flex}.divider:before,.divider:after{content:"";background:linear-gradient(to right, transparent, var(--gold));flex:1;height:1px}.divider:after{background:linear-gradient(to left, transparent, var(--gold))}.divider span{font-size:.7rem}.lang-toggle{top:1.2rem;z-index:40;font-family:var(--font-display);letter-spacing:.12em;border:1px solid var(--gold);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--gold-deep);cursor:pointer;background:#fbf7eeb3;border-radius:999px;padding:.55rem 1.1rem;font-size:.8rem;transition:background .3s,transform .2s,box-shadow .3s;position:fixed;inset-inline-end:1.2rem;box-shadow:0 4px 16px #3a33291f}.lang-toggle:hover{background:var(--gold);color:#fff;transform:translateY(-1px);box-shadow:0 8px 22px #a8842f66}.music-toggle{bottom:1.2rem;z-index:60;border:1px solid var(--gold);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:#fbf7eeb3;border-radius:50%;place-items:center;width:46px;height:46px;transition:background .3s,transform .2s,box-shadow .3s;display:grid;position:fixed;inset-inline-end:1.2rem;box-shadow:0 4px 16px #3a33292e}.music-toggle:hover{background:var(--gold);transform:translateY(-1px);box-shadow:0 8px 22px #a8842f66}.music-bars{align-items:flex-end;gap:3px;height:16px;display:flex}.music-bars span{background:var(--gold-deep);opacity:.5;border-radius:2px;width:3px;height:5px;transition:opacity .3s}.music-toggle:hover .music-bars span{background:#fff}.music-toggle.is-playing .music-bars span{opacity:1;animation:.9s ease-in-out infinite equalize}.music-toggle.is-playing .music-bars span:nth-child(2){animation-delay:.25s}.music-toggle.is-playing .music-bars span:nth-child(3){animation-delay:.5s}@keyframes equalize{0%,to{height:5px}50%{height:16px}}@media (prefers-reduced-motion:reduce){.music-toggle.is-playing .music-bars span{height:11px;animation:none}}.scroll-progress{top:0;transform-origin:0;background:linear-gradient(90deg, var(--gold-soft), var(--gold), var(--gold-deep));z-index:45;width:100%;height:3px;position:fixed;inset-inline-start:0}html[dir=rtl] .scroll-progress{transform-origin:100%}.intro{z-index:50;perspective:1300px;background:#1c1630;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.intro__backdrop{filter:blur(7px)brightness(.55)saturate(1.05);background-position:50%;background-size:cover;position:absolute;inset:-5%}.intro__overlay{background:radial-gradient(60% 50% at 50% 42%,#281c3c1a,#140e22c7 100%),linear-gradient(#20203f8c,#7c5a7833 55%,#140e22b8);position:absolute;inset:0}.intro__dust{pointer-events:none;position:absolute;inset:0}.intro__dust span{background:#ffe9ad;border-radius:50%;position:absolute;box-shadow:0 0 8px 2px #ffe096cc}.intro__hint{text-align:center;width:100%;font-family:var(--font-display);letter-spacing:.32em;text-transform:uppercase;color:#fdeccb;text-shadow:0 2px 12px #00000080;font-size:.72rem;position:absolute;bottom:8%}html[dir=rtl] .intro__hint{letter-spacing:0}.intro__flash{pointer-events:none;z-index:7;background:radial-gradient(circle,#fff4cff2,#f5b94e80 35%,#0000 70%);border-radius:50%;width:62vmax;height:62vmax;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.inv-env{aspect-ratio:3/2;cursor:pointer;width:min(440px,82vw);transform-style:preserve-3d;filter:drop-shadow(0 30px 60px #00000080);position:relative}.inv-env__back{border:1px solid var(--gold-soft);background:linear-gradient(155deg,#fdfaf3,#ecdcbb);border-radius:8px;position:absolute;inset:0}.inv-env__pocket{border-radius:8px;position:absolute;inset:0;overflow:hidden}.inv-env__pocket:before{content:"";clip-path:polygon(0 100%,50% 42%,100% 100%);background:linear-gradient(160deg,#f1e2bf,#e3cf9f);position:absolute;inset:0}.inv-env__pocket:after{content:"";-webkit-mask-composite:source-in;background:linear-gradient(90deg,#f6ebd2 0 50%,#efdfba 50%);position:absolute;inset:0;-webkit-mask-image:linear-gradient(-45deg,#000 0 49.5%,#0000 50%),linear-gradient(45deg,#000 0 49.5%,#0000 50%);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:border-box,border-box;-webkit-mask-origin:border-box,border-box;-webkit-mask-composite:source-in;mask-composite:intersect;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.inv-env__flap{clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;backface-visibility:hidden;z-index:3;background:linear-gradient(160deg,#efdcb2,#e0c993);border-radius:8px 8px 0 0;height:64%;position:absolute;top:0;left:0;right:0}.inv-seal{aspect-ratio:1;z-index:4;pointer-events:none;place-items:center;width:clamp(54px,14vw,76px);display:grid;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.inv-seal__half{background:radial-gradient(circle at 40% 35%,#c9605f,#8d2f2f 72%);width:50%;height:100%;position:absolute;top:0;box-shadow:inset 0 2px 6px #ffffff59}.inv-seal__half--l{transform-origin:100%;border-radius:100% 0 0 100%/50% 0 0 50%;left:0}.inv-seal__half--r{transform-origin:0;border-radius:0 100% 100% 0/0 50% 50% 0;right:0}.inv-seal__monogram{z-index:1;color:#f6e3c8;font-family:var(--font-display);font-size:clamp(.95rem,3.4vw,1.35rem);position:relative}.inv-card{aspect-ratio:3/4.2;border:1px solid var(--gold-soft);z-index:6;outline-offset:-14px;background:#fffdf7;border-radius:10px;outline:6px solid #c9a24b2e;flex-direction:column;width:min(330px,76vw);display:flex;position:absolute;overflow:hidden;box-shadow:0 40px 90px #0000008c}.inv-card__photo{background-position:50% 22%;background-size:cover;height:56%}.inv-card__body{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.55rem;padding:1rem;display:flex}.inv-card__eyebrow{font-family:var(--font-display);letter-spacing:.28em;text-transform:uppercase;color:var(--gold-deep);font-size:.62rem}html[dir=rtl] .inv-card__eyebrow{letter-spacing:0}.inv-card__names{font-family:var(--font-script);color:var(--ink);font-size:clamp(1.9rem,6vw,2.6rem);font-weight:400;line-height:1}.inv-card__rule{background:var(--gold);width:46px;height:1px}.inv-card__date{color:var(--ink-soft);letter-spacing:.04em;font-size:.92rem}.vintro{z-index:50;background:#000;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.vintro__video{object-fit:cover;z-index:1;width:100%;height:100%;display:block;position:absolute;inset:0}.vintro__prompt{z-index:4;pointer-events:none;background:radial-gradient(#00000052 0%,#0000 70%);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.vintro__prompt p{font-family:var(--font-display);color:#fff;text-transform:uppercase;letter-spacing:.3em;text-shadow:0 2px 14px #00000080;font-size:1rem}html[dir=rtl] .vintro__prompt p{letter-spacing:0}.vintro__white{z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 46%,#fff 0%,#fffdf6 60%,#fdf3e0 100%);position:absolute;inset:0}.vintro__card{z-index:5;position:relative}.inv-card__photo--bw{filter:grayscale()contrast(1.05)brightness(1.02);background-position:50% 26%}.hero{text-align:center;isolation:isolate;place-items:center;min-height:100svh;padding:2rem 1.5rem;display:grid;position:relative;overflow:hidden}.hero__sky{z-index:-3;background:linear-gradient(180deg, #20203f 0%, #43395f 22%, #7c5a78 44%, #b87a82 62%, #e2a98a 76%, #f0cfa0 88%, var(--cream) 100%);position:absolute;inset:0}.hero__moon{aspect-ratio:1;z-index:-2;background:radial-gradient(circle at 38% 36%,#fffdf4,#fbeccb 60%,#f1d9a8 100%);border-radius:50%;width:clamp(120px,22vw,230px);position:absolute;top:9%;left:50%;transform:translate(-50%);box-shadow:0 0 70px 24px #fbeccb8c,0 0 160px 60px #fbeccb47}.hero__stars,.hero__fireflies{z-index:-2;pointer-events:none;position:absolute;inset:0}.star{background:#fff;border-radius:50%;position:absolute}.firefly{background:#ffe9ad;border-radius:50%;width:5px;height:5px;position:absolute;box-shadow:0 0 8px 2px #ffe096e6}.hero__scene{z-index:-1;pointer-events:none;position:absolute;bottom:0;left:0;right:0}.hero__layer{width:min(1500px,170vw);position:absolute;bottom:-1px;left:50%;transform:translate(-50%)}.hero__layer svg{width:100%;height:auto;display:block}.hero__content{z-index:2;margin-bottom:8vh;position:relative}.hero__pre{font-family:var(--font-display);letter-spacing:.4em;text-transform:uppercase;color:#fff;opacity:.92;text-shadow:0 2px 14px #28193299;font-size:.78rem}.hero__names{font-family:var(--font-script);color:#fff7e8;text-shadow:0 4px 30px #3c1e3c8c,0 0 60px #ffe2a059;margin:.4rem 0;font-size:clamp(3.6rem,14vw,9rem);line-height:.95}.hero__char{display:inline-block}.hero__amp{color:var(--gold-soft);margin:-.05em 0;font-size:.5em;display:block}.hero__date{font-family:var(--font-display);letter-spacing:.28em;text-transform:uppercase;color:#fdeccb;text-shadow:0 2px 12px #28193299;font-size:clamp(.8rem,2.4vw,1rem)}.hero__scroll{z-index:3;font-family:var(--font-display);letter-spacing:.3em;text-transform:uppercase;color:#fdeccb;text-shadow:0 2px 10px #28193299;flex-direction:column;align-items:center;gap:.5rem;font-size:.62rem;display:flex;position:absolute;bottom:1.6rem;left:50%;transform:translate(-50%)}.hero__scroll-dot{background:var(--gold-soft);width:1px;height:38px}.window-glow{animation:4s ease-in-out infinite windowFlicker}@keyframes windowFlicker{0%,to{opacity:.85}50%{opacity:1}}.countdown{justify-content:center;gap:clamp(.6rem,3vw,1.8rem);margin-top:1.8rem;display:flex}.countdown__unit{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fffaf01f;border:1px solid #fff0cd4d;border-radius:10px;min-width:64px;padding:.6rem .4rem}.countdown__num{font-family:var(--font-display);color:#fff7e8;text-shadow:0 2px 14px #28193280;font-size:clamp(1.5rem,5vw,2.2rem)}.countdown__label{letter-spacing:.2em;text-transform:uppercase;color:#f3dcb8;font-size:.7rem}.story{background:var(--parchment)}.story__grid{gap:clamp(2.5rem,7vw,5rem);display:grid}.story__item{grid-template-columns:1fr 1fr;align-items:center;gap:clamp(1.5rem,5vw,3.5rem);display:grid}.story__media-wrap{height:100%}.story__item:nth-child(2n) .story__media-wrap{order:2}.story__media{aspect-ratio:4/3;background:var(--cream-deep) center/cover no-repeat;border:1px solid var(--gold-soft);box-shadow:0 18px 40px var(--shadow);border-radius:8px}.story__heading{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin:.4rem 0 .8rem;font-size:1rem}.story__text{color:var(--ink-soft);font-size:1.15rem}.details{background:linear-gradient(180deg, var(--cream) 0%, var(--cream-deep) 100%)}.details__grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.4rem;margin-bottom:2.5rem;display:grid}.card{background:var(--parchment);border:1px solid var(--gold-soft);text-align:center;box-shadow:0 14px 30px var(--shadow);border-radius:10px;padding:2rem 1.5rem;transition:transform .4s,box-shadow .4s}.card:hover{transform:translateY(-6px);box-shadow:0 24px 48px #3a332940}.card__icon{color:var(--gold-deep);margin-bottom:.6rem;font-size:1.6rem}.card__label{font-family:var(--font-display);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);font-size:.72rem}.card__value{color:var(--ink);margin-top:.4rem;font-size:1.3rem}.card__sub{color:var(--ink-soft);margin-top:.2rem;font-size:1rem}.details__note{text-align:center;color:var(--ink-soft);max-width:620px;margin:0 auto;font-size:1.1rem;font-style:italic}.details__map{text-align:center;margin-top:1.6rem}.btn-gold--outline{color:var(--gold-deep);border:1px solid var(--gold);box-shadow:none;background:0 0;text-decoration:none;display:inline-block}.btn-gold--outline:hover:not(:disabled){background:var(--gold);color:#fff;box-shadow:0 12px 28px #a8842f59}.gallery{background:var(--parchment)}.gallery__grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:180px;gap:1rem;display:grid}.gallery__tile{background:var(--cream-deep);border:1px solid var(--gold-soft);box-shadow:0 8px 22px var(--shadow);border-radius:8px;margin:0;transition:transform .5s,box-shadow .5s;position:relative;overflow:hidden}.gallery__tile img{object-fit:cover;width:100%;height:100%;transition:transform .7s}.gallery__tile:hover{box-shadow:0 22px 48px var(--shadow);z-index:2;transform:scale(1.02)}.gallery__tile:hover img{transform:scale(1.08)}.gallery__tile--tall{grid-row:span 2}.gallery__tile--wide{grid-column:span 2}.rsvp{background:linear-gradient(180deg, var(--cream-deep) 0%, var(--cream) 100%)}.rsvp__intro{text-align:center;color:var(--ink-soft);max-width:560px;margin:0 auto 2.5rem;font-size:1.15rem;font-style:italic}.rsvp__form{background:var(--parchment);border:1px solid var(--gold-soft);max-width:640px;box-shadow:0 24px 60px var(--shadow);border-radius:14px;gap:1.4rem;margin:0 auto;padding:clamp(1.6rem,5vw,3rem);display:grid}.field{gap:.4rem;display:grid}.field label{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep);font-size:.72rem}.field input,.field select,.field textarea{font-family:var(--font-serif);color:var(--ink);border:1px solid var(--gold-soft);background:#fffdf8;border-radius:8px;padding:.7rem .9rem;font-size:1.05rem;transition:border-color .3s,box-shadow .3s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px #c9a24b2e}.field textarea{resize:vertical;min-height:90px}.field--error input,.field--error select{border-color:#b65454}.field__error{color:#b65454;font-size:.85rem;font-style:italic}.rsvp__row{grid-template-columns:1fr 1fr;gap:1.4rem;display:grid}.attend-choice{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.attend-option{border:1px solid var(--gold-soft);text-align:center;cursor:pointer;background:#fffdf8;border-radius:10px;padding:.9rem;font-size:1rem;transition:all .25s}.attend-option input{display:none}.attend-option--active{background:var(--gold);color:#fff;border-color:var(--gold-deep);box-shadow:0 8px 20px #a8842f59}.btn-gold{font-family:var(--font-display);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;color:#fff;background:linear-gradient(135deg, var(--gold-soft), var(--gold) 45%, var(--gold-deep));background-size:200% 200%;border:none;border-radius:999px;padding:1rem 1.4rem;font-size:.85rem;transition:transform .2s,box-shadow .3s,background-position .6s;box-shadow:0 12px 28px #a8842f66}.btn-gold:hover:not(:disabled){background-position:100% 100%;transform:translateY(-2px);box-shadow:0 16px 36px #a8842f80}.btn-gold:disabled{opacity:.7;cursor:progress}.rsvp__success{text-align:center;background:var(--parchment);border:1px solid var(--gold-soft);max-width:560px;box-shadow:0 24px 60px var(--shadow);border-radius:14px;margin:0 auto;padding:clamp(2.5rem,7vw,4rem) 2rem}.rsvp__success-icon{margin-bottom:.8rem;font-size:3rem}.rsvp__success h3{font-family:var(--font-script);color:var(--gold-deep);font-size:2.6rem}.rsvp__success p{color:var(--ink-soft);margin-top:.5rem;font-size:1.15rem}.footer{text-align:center;background:linear-gradient(180deg, var(--cream-deep), #e3d4b8);color:var(--ink);padding:clamp(4rem,9vw,7rem) 1.5rem}.footer__script{font-family:var(--font-script);color:var(--gold-deep);font-size:clamp(2.4rem,7vw,3.6rem)}.footer__sub{font-family:var(--font-display);letter-spacing:.25em;text-transform:uppercase;color:var(--ink-soft);margin-top:.8rem;font-size:.78rem}.petals{pointer-events:none;z-index:6;position:fixed;inset:0;overflow:hidden}.petal{background:var(--gold-soft);opacity:.5;border-radius:80% 0;width:12px;height:12px;position:absolute;top:-5%}@media (width<=720px){.story__item{grid-template-columns:1fr}.story__item:nth-child(2n) .story__media-wrap{order:0}.gallery__grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}.rsvp__row{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.window-glow,.firefly,.petal{animation:none!important}}.night{--parchment:#221a33;--cream:#1f1730;--cream-deep:#140e20;--ink:#f5eede;--ink-soft:#d2c5af;--stone:#a89a82;--blush:#2b2142;--shadow:#0000008c;--gold-deep:#ecc878;background:#181122;position:relative}.night .story{background:linear-gradient(180deg, #f3ddc0 0%, #6a4f63 12%, var(--parchment) 30%, var(--parchment) 100%)}.night .card{background:linear-gradient(160deg,#2a2140,#201730);border-color:#c9a24b66}.night .rsvp__form,.night .rsvp__success{background:linear-gradient(160deg,#241b37,#1c1430);border-color:#c9a24b66}.night .field input,.night .field select,.night .field textarea{color:var(--ink);background:#1b1430;border-color:#c9a24b66}.night .field input:focus,.night .field select:focus,.night .field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px #c9a24b38}.night .attend-option{color:var(--ink);background:#312647;border-color:#e2c98a8c}.night .attend-option:hover{border-color:var(--gold);background:#3a2e53}.night .attend-option--active{background:var(--gold);color:#2a1d07;border-color:var(--gold-soft);box-shadow:0 6px 20px #c9a24b80}.night .footer{background:linear-gradient(#140e20,#0d0915)}
