:root{
  --ivory:#f8f1e4; --paper:#fcf7ed; --paper2:#efe1c8; --ink:#4a3826;
  --gold:#a77536; --gold2:#d6b778; --deep:#7b5628; --soft:#ddc9a5;
  --shadow:0 26px 70px rgba(84,55,19,.18); --line:rgba(126,86,36,.34);
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:radial-gradient(circle at 15% 10%,#fffaf0 0,transparent 34%),radial-gradient(circle at 85% 35%,#ead5b3 0,transparent 30%),linear-gradient(180deg,#f7eddd,#ead8ba 52%,#f7efe0);color:var(--ink);font-family:"Cormorant",serif;overflow-x:hidden}.hidden{display:none!important}
body.locked{overflow:hidden}.noise{position:fixed;inset:0;pointer-events:none;z-index:50;opacity:.08;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90' viewBox='0 0 90 90'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}.ambient{position:fixed;border-radius:50%;filter:blur(50px);pointer-events:none;z-index:-1}.ambient-a{width:45vw;height:45vw;left:-12vw;top:28vh;background:rgba(255,239,202,.45)}.ambient-b{width:42vw;height:42vw;right:-16vw;top:65vh;background:rgba(183,126,62,.12)}
.opening-scene{min-height:100svh;position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.88),rgba(246,232,210,.88) 42%,rgba(225,197,156,.88)),linear-gradient(135deg,#f8efe2,#ead3b0);transition:opacity 1s ease,visibility 1s ease}.opening-scene.done{opacity:0;visibility:hidden;pointer-events:none}.opening-architecture{position:absolute;inset:0;overflow:hidden;pointer-events:none}.column{position:absolute;bottom:-8%;width:10%;height:78%;border-radius:50px 50px 0 0;background:linear-gradient(90deg,#d8c09b,#f5ead7 28%,#caa875 45%,#f8efe0 64%,#b58950);box-shadow:inset 0 0 0 1px rgba(112,76,31,.18),0 0 70px rgba(125,83,28,.12);opacity:.6}.column:before{content:"";position:absolute;top:-8%;left:-18%;width:136%;height:12%;border-radius:35px;background:linear-gradient(#f4ead7,#b98e58,#efd9b5);box-shadow:inset 0 -4px 0 rgba(122,85,42,.2)}.col-left{left:2%}.col-right{right:2%}.drape{position:absolute;top:-10%;width:48%;height:45%;background:radial-gradient(ellipse at top,rgba(255,255,255,.9),rgba(226,201,165,.56) 47%,transparent 49%);filter:blur(.3px);opacity:.75}.drape-left{left:-6%;transform:rotate(-8deg)}.drape-right{right:-6%;transform:scaleX(-1) rotate(-8deg)}
.opening-floral{position:absolute;width:min(34vw,320px);height:min(34vw,320px);bottom:7%;filter:drop-shadow(0 14px 24px rgba(92,62,24,.16));opacity:.95}.opening-floral:before,.opening-floral:after{content:"";position:absolute;border-radius:50%;background:radial-gradient(circle at 40% 35%,#fffaf2 0 16%,#ead5b8 17% 31%,#f7ebd9 32% 48%,#c8a575 49% 52%,transparent 53%),radial-gradient(circle,#fff 0 9%,#e8d1b0 10% 18%,transparent 19%);box-shadow:70px 38px 0 -20px #f8ecdb,-54px 74px 0 -28px #ead1ad,26px 102px 0 -35px #fff9ed,-76px -6px 0 -32px #f3dfc0}.opening-floral:before{inset:20%}.opening-floral:after{width:34%;height:34%;left:5%;top:10%}.floral-left{left:1%}.floral-right{right:1%;transform:scaleX(-1)}
.envelope-wrap{width:min(86vw,650px);perspective:1800px;position:relative;z-index:4}.envelope{all:unset;display:block;cursor:pointer;width:100%;aspect-ratio:1.55;position:relative;filter:drop-shadow(0 32px 38px rgba(88,56,17,.24));transform-style:preserve-3d}.envelope:focus-visible{outline:3px solid rgba(167,117,54,.55);outline-offset:8px}.envelope-back{position:absolute;inset:0;border:1px solid rgba(120,82,38,.33);border-radius:7px;background:linear-gradient(135deg,#fffaf2,#efe1ca 62%,#f8eddd);box-shadow:inset 0 0 0 8px rgba(255,255,255,.32),inset 0 0 0 10px rgba(126,86,36,.12)}.envelope-back:before,.envelope-back:after{content:"";position:absolute;inset:6%;border:1px solid rgba(167,117,54,.18);clip-path:polygon(0 0,100% 100%,100% 0,0 100%)}.envelope-front{position:absolute;bottom:0;width:60%;height:67%;background:linear-gradient(145deg,#f8eedf,#ead8bd);border-bottom:1px solid rgba(120,82,38,.25);z-index:5}.front-left{left:0;clip-path:polygon(0 0,100% 100%,0 100%)}.front-right{right:0;clip-path:polygon(100% 0,100% 100%,0 100%)}.envelope-flap{position:absolute;z-index:7;left:0;top:0;width:100%;height:63%;transform-origin:top center;backface-visibility:hidden;transform:rotateX(0deg);transition:transform 1.1s cubic-bezier(.2,.7,.16,1);clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(180deg,#fbf5e8,#eee0c9);border-top:1px solid rgba(120,82,38,.3)}.basmala{position:absolute;top:23%;left:12%;right:12%;font-family:"Amiri",serif;text-align:center;font-size:clamp(18px,3.2vw,27px);color:var(--deep);text-shadow:0 1px 0 #fff}.flap-ornament{position:absolute;top:45%;left:0;right:0;text-align:center;color:var(--gold);font-size:24px}.seal{position:absolute;z-index:9;left:50%;top:53%;transform:translate(-50%,-50%);width:clamp(72px,13vw,104px);aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:8px;color:#fff1d4;font-family:"Cormorant Garamond",serif;font-size:clamp(22px,4vw,34px);letter-spacing:.08em;background:radial-gradient(circle at 35% 25%,#dab873,#a17131 45%,#6d481e 80%);box-shadow:0 9px 18px rgba(80,48,15,.35),inset 0 0 0 4px rgba(255,230,172,.22),inset 0 0 0 8px rgba(103,66,23,.14);transition:transform .45s ease,opacity .5s ease}.seal i,.monogram i{height:42%;width:1px;background:rgba(255,240,211,.65)}.tap-copy{position:absolute;z-index:10;left:0;right:0;bottom:7%;text-align:center;text-transform:uppercase;letter-spacing:.22em;font-size:clamp(11px,2vw,14px);color:var(--deep);transition:opacity .3s}.tap-copy span{display:block;font-size:22px;animation:bob 1.5s infinite}.envelope-letter{position:absolute;z-index:3;left:10%;right:10%;bottom:8%;height:72%;border:1px solid rgba(126,86,36,.25);background:linear-gradient(#fffaf1,#f6ebd9);border-radius:4px;display:grid;place-items:center;transform:translateY(26%);transition:transform 1.1s .4s cubic-bezier(.2,.8,.2,1);box-shadow:0 12px 25px rgba(85,56,20,.12)}.mini-letter-inner{text-align:center;border:1px solid rgba(126,86,36,.2);padding:8% 12%;width:88%;height:82%;display:grid;align-content:center}.mini-kicker{font-size:clamp(12px,2vw,16px);letter-spacing:.06em}.mini-letter-inner strong{font-family:"Cormorant Garamond",serif;color:var(--deep);font-size:clamp(26px,5vw,44px);font-weight:500;letter-spacing:.05em;margin-top:8px}.mini-letter-inner em{display:block;font-size:.5em;font-weight:400}.envelope.open .envelope-flap{transform:rotateX(178deg);z-index:1}.envelope.open .envelope-letter{transform:translateY(-35%)}.envelope.open .seal{transform:translate(-50%,-50%) scale(.86);opacity:0}.envelope.open .tap-copy{opacity:0}.opening-caption{position:absolute;bottom:4%;text-align:center;color:var(--deep);z-index:5;transition:opacity .4s}.opening-caption span{display:block;font-family:"Cormorant Garamond",serif;font-size:24px;letter-spacing:.12em}.opening-caption small{letter-spacing:.25em;text-transform:uppercase;font-size:10px;opacity:.7}
.butterfly-layer,.spark-layer{position:absolute;inset:0;pointer-events:none;z-index:20;overflow:hidden}.flying-butterfly{position:absolute;width:22px;height:18px;left:50%;top:50%;filter:drop-shadow(0 0 8px rgba(255,244,206,.95));animation:fly var(--dur) cubic-bezier(.18,.64,.27,1) forwards}.flying-butterfly:before,.flying-butterfly:after,.butterfly-static:before,.butterfly-static:after{content:"";position:absolute;width:58%;height:100%;top:0;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(230,204,151,.4));border:1px solid rgba(175,126,59,.35);border-radius:70% 20% 70% 30%;transform-origin:100% 55%;animation:wing .28s ease-in-out infinite alternate}.flying-butterfly:before,.butterfly-static:before{left:0;transform:rotate(-18deg)}.flying-butterfly:after,.butterfly-static:after{right:0;transform:scaleX(-1) rotate(-18deg)}.spark{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff8d5;box-shadow:0 0 9px #f9d988;animation:sparkle var(--dur) ease-out forwards}
@keyframes bob{50%{transform:translateY(6px)}}@keyframes wing{to{transform:scaleX(.22) rotate(-10deg)}}@keyframes fly{0%{opacity:0;transform:translate(0,0) scale(.3) rotate(0)}15%{opacity:1}100%{opacity:0;transform:translate(var(--x),var(--y)) scale(var(--s)) rotate(var(--r))}}@keyframes sparkle{0%{opacity:0;transform:translate(0,0) scale(.3)}15%{opacity:1}100%{opacity:0;transform:translate(var(--x),var(--y)) scale(1.5)}}
.invitation{opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity 1.15s .35s ease,transform 1.15s .35s ease;max-width:1180px;margin:0 auto;padding:48px 18px 80px}.invitation.visible{opacity:1;transform:none;pointer-events:auto}.section-shell{position:relative;border:1px solid rgba(130,90,37,.24);box-shadow:var(--shadow);background:linear-gradient(145deg,rgba(255,250,240,.94),rgba(239,223,196,.92));overflow:hidden}.section-shell:before{content:"";position:absolute;inset:10px;border:1px solid rgba(130,90,37,.18);pointer-events:none}.hero{min-height:85svh;display:grid;align-content:center;justify-items:center;text-align:center;padding:70px 24px;border-radius:18px;margin-bottom:22px;background:radial-gradient(circle at 50% 20%,rgba(255,255,255,.95),transparent 33%),linear-gradient(rgba(252,247,237,.92),rgba(236,215,182,.9))}.hero:after{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;background:radial-gradient(circle at 5% 92%,rgba(255,255,255,.8) 0 4%,rgba(203,168,112,.5) 5% 8%,transparent 9%),radial-gradient(circle at 95% 88%,rgba(255,255,255,.9) 0 5%,rgba(203,168,112,.5) 6% 10%,transparent 11%);opacity:.7}.hero-arches{position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 7%,rgba(126,86,36,.13) 7.2% 7.6%,transparent 7.8% 92.2%,rgba(126,86,36,.13) 92.4% 92.8%,transparent 93%),radial-gradient(ellipse at center 12%,transparent 0 23%,rgba(126,86,36,.14) 23.2% 23.7%,transparent 24%);opacity:.7}.ornament-top{font-size:34px;color:var(--gold);margin-bottom:10px}.arabic{font-family:"Amiri",serif;color:var(--deep);font-size:clamp(22px,4vw,34px);margin:0 0 22px}.intro{font-family:"Cormorant Garamond",serif;font-size:clamp(18px,2.8vw,25px);line-height:1.6;margin:0 0 22px}.names{position:relative;z-index:2}.names h1{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:clamp(62px,12vw,120px);line-height:.86;letter-spacing:.06em;margin:0;color:var(--deep);text-shadow:0 2px 0 rgba(255,255,255,.8)}.names span{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:clamp(26px,4vw,42px);color:var(--gold);display:block;margin:14px 0}.gold-flourish{display:flex;align-items:center;gap:12px;margin:22px auto 14px;color:var(--gold)}.gold-flourish i{width:70px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}.gold-flourish i:last-child{transform:scaleX(-1)}.gold-flourish b{font-size:11px}.tagline{font-family:"Cormorant Garamond",serif;font-size:clamp(22px,3.5vw,34px);line-height:1.25;margin:0}.tagline em{color:var(--gold)}.butterfly-static{position:absolute;width:34px;height:26px;z-index:3;opacity:.75}.b1{top:18%;left:8%;transform:rotate(-20deg)}.b2{right:9%;bottom:18%;transform:rotate(22deg)}
.details-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px;padding:18px;border-radius:18px;background:linear-gradient(rgba(249,241,226,.84),rgba(235,213,179,.86));margin-bottom:22px}.lux-card{position:relative;min-height:340px;border:1px solid rgba(128,88,39,.33);border-radius:12px;background:linear-gradient(160deg,rgba(255,250,239,.97),rgba(242,226,198,.94));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px 24px;box-shadow:inset 0 0 35px rgba(172,128,70,.06),0 14px 24px rgba(82,53,18,.08);overflow:hidden}.time-card,.venue-card,.countdown-card{grid-column:span 4}.calendar-card{grid-column:span 5}.rsvp-card{grid-column:span 7}.card-corner{position:absolute;width:34px;height:34px;border-color:rgba(151,105,48,.45)}.card-corner.tl{left:8px;top:8px;border-left:1px solid;border-top:1px solid}.card-corner.tr{right:8px;top:8px;border-right:1px solid;border-top:1px solid}.card-corner.bl{left:8px;bottom:8px;border-left:1px solid;border-bottom:1px solid}.card-corner.br{right:8px;bottom:8px;border-right:1px solid;border-bottom:1px solid}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:14px;line-height:1.45;color:var(--deep);margin:0 0 18px;font-weight:600}.clock{width:150px;height:150px;border-radius:50%;border:5px double var(--gold);background:radial-gradient(circle,#fffaf0,#ead8ba);position:relative;box-shadow:inset 0 0 0 6px rgba(255,255,255,.5),0 8px 18px rgba(91,61,23,.15);margin-bottom:18px}.tick{position:absolute;font-family:"Cormorant Garamond",serif;font-size:15px}.t12{top:10px;left:50%;transform:translateX(-50%)}.t3{right:11px;top:50%;transform:translateY(-50%)}.t6{bottom:9px;left:50%;transform:translateX(-50%)}.t9{left:11px;top:50%;transform:translateY(-50%)}.hand{position:absolute;left:50%;bottom:50%;transform-origin:bottom;background:var(--deep);border-radius:2px}.hour{height:42px;width:3px;transform:rotate(195deg)}.minute{height:56px;width:2px;transform:rotate(180deg)}.clock-pin{position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px;border-radius:50%;background:var(--gold)}.big-time{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:34px;color:var(--deep)}.pin-mark{color:var(--gold);font-size:22px;margin-bottom:6px}.venue-card h2{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;color:var(--gold);font-size:clamp(32px,4vw,44px);margin:0}.venue-loc{text-transform:uppercase;letter-spacing:.11em;font-size:12px;line-height:1.6}.gate-art{width:200px;height:88px;position:relative;margin:10px 0 18px;border-bottom:2px solid var(--gold)}.gate-art b{position:absolute;left:50%;bottom:0;width:100px;height:74px;transform:translateX(-50%);border:3px double var(--gold);border-bottom:0;border-radius:52px 52px 0 0;background:repeating-linear-gradient(90deg,transparent 0 10px,rgba(126,86,36,.34) 11px 12px)}.gate-art span{position:absolute;bottom:0;width:30px;height:80px;border:1px solid var(--gold);background:linear-gradient(90deg,#ead7b6,#fff6e6,#caa875)}.gate-art span:first-child{left:10px}.gate-art span:last-child{right:10px}.royal-btn{appearance:none;border:1px solid var(--deep);background:rgba(255,250,240,.65);color:var(--deep);text-decoration:none;border-radius:999px;padding:11px 18px;text-transform:uppercase;letter-spacing:.14em;font-family:"Cormorant",serif;font-size:12px;cursor:pointer;transition:.25s ease}.royal-btn:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(96,62,22,.14)}.royal-btn.filled{background:linear-gradient(180deg,#b98543,#8d612c);color:#fff7e5;border-color:#8b5f2d}.tiny-heart{color:var(--gold);font-size:12px;margin-bottom:14px}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;width:100%}.countdown div{border:1px solid rgba(126,86,36,.3);border-radius:6px;padding:12px 5px;background:rgba(255,249,236,.55)}.countdown strong{display:block;font-family:"Cormorant Garamond",serif;font-size:30px;font-weight:500}.countdown span{font-size:9px;text-transform:uppercase;letter-spacing:.12em;opacity:.65}.calendar-icon{width:92px;height:80px;border:4px solid var(--gold);border-radius:8px;position:relative;margin:2px 0 24px;background:rgba(255,255,255,.35)}.calendar-icon:before{content:"";position:absolute;top:14px;left:0;right:0;border-top:4px solid var(--gold)}.calendar-icon:after{content:"•   •";position:absolute;top:-15px;left:0;right:0;color:var(--gold);font-size:30px;letter-spacing:18px;transform:translateX(7px)}.calendar-icon span{position:absolute;inset:24px 0 0;display:grid;place-items:center;font-family:"Cormorant Garamond",serif;font-size:32px;color:var(--deep)}
#rsvpForm{width:min(100%,520px)}.field-label{display:block;text-align:left;margin:0 0 6px 10px;font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--deep)}.royal-input{width:100%;border:1px solid rgba(126,86,36,.32);background:rgba(255,250,240,.66);border-radius:999px;padding:13px 17px;font:16px "Cormorant",serif;color:var(--ink);outline:none;margin-bottom:12px}.royal-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(167,117,54,.12)}.rsvp-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 12px}.choice{border:1px solid rgba(126,86,36,.3);border-radius:999px;padding:13px 12px;background:rgba(255,250,240,.7);font:600 13px "Cormorant",serif;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);cursor:pointer;transition:.2s}.choice.active{background:linear-gradient(180deg,#b98543,#8d612c);color:#fff8e8;border-color:#8c612f}.submit-rsvp{width:100%}.rsvp-status{min-height:20px;margin:12px 0 0;font-style:italic;color:#6e5a3c}
.date-ribbon{border-radius:18px;margin-bottom:22px;min-height:200px;display:grid;place-items:center;text-align:center;background:linear-gradient(120deg,rgba(231,208,171,.92),rgba(255,249,237,.9),rgba(220,191,145,.9))}.date-ribbon span{display:block;text-transform:uppercase;letter-spacing:.23em;font-size:13px}.date-ribbon strong{display:block;font-family:"Cormorant Garamond",serif;font-size:clamp(38px,7vw,66px);font-weight:500;color:var(--deep);margin:4px 0}.date-ribbon small{font-size:14px;letter-spacing:.1em}.closing{min-height:320px;border-radius:18px;display:grid;place-items:center;align-content:center;text-align:center;background:radial-gradient(circle at 50% 120%,rgba(192,141,72,.24),transparent 38%),linear-gradient(rgba(255,249,237,.93),rgba(226,200,159,.9));padding:40px}.footer-columns{position:absolute;inset:0;background:linear-gradient(90deg,rgba(126,86,36,.15) 0 1%,transparent 1% 11%,rgba(126,86,36,.13) 11% 12%,transparent 12% 88%,rgba(126,86,36,.13) 88% 89%,transparent 89% 99%,rgba(126,86,36,.15) 99%)}.monogram{width:115px;height:115px;border:1px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;gap:12px;font:38px "Cormorant Garamond",serif;color:var(--deep);position:relative;z-index:2}.monogram:after{content:"";position:absolute;inset:-10px;border:1px solid rgba(167,117,54,.3);border-radius:50%}.monogram i{background:rgba(126,86,36,.4);height:45px}.closing p{position:relative;z-index:2;text-transform:uppercase;letter-spacing:.14em;font-size:15px;line-height:1.7;margin:22px 0 8px}.reveal-on-scroll{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal-on-scroll.in-view{opacity:1;transform:none}
@media (max-width:850px){.invitation{padding:22px 10px 50px}.hero{min-height:78svh}.details-grid{grid-template-columns:1fr;padding:10px;gap:12px}.time-card,.venue-card,.countdown-card,.calendar-card,.rsvp-card{grid-column:auto}.lux-card{min-height:320px}.rsvp-choice{grid-template-columns:1fr}.opening-floral{width:210px;height:210px;bottom:4%;opacity:.75}.column{width:15%;opacity:.42}}
@media (max-width:520px){.opening-scene{padding:16px}.envelope-wrap{width:96vw}.basmala{top:20%}.hero{padding:62px 16px}.details-grid{border-radius:12px}.lux-card{padding:30px 16px}.countdown{gap:5px}.countdown strong{font-size:24px}.countdown div{padding:10px 2px}.opening-caption{bottom:8%}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal-on-scroll{opacity:1;transform:none}}
