:root{--gold: #bf8f2c;--gold-light: #ddb85f;--rose: #e7b89c;--rose-deep: #a9763a;--cream: #fffdf8;--ink: #4a3a2c;--glass-tint: rgba(255, 253, 247, .46);--glass-tint-solid: rgba(255, 251, 243, .92);--glass-edge: rgba(255, 255, 255, .78);--glass-edge-lit: rgba(255, 255, 255, .95);--glass-gold: rgba(194, 149, 47, .36);--glass-shadow: rgba(120, 92, 40, .16);--ease: cubic-bezier(.16, 1, .3, 1)}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;color:var(--ink);font-family:Montserrat,system-ui,sans-serif;font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden}body{background:radial-gradient(120% 70% at 50% 2%,#f491ad1f,#f491ad00 45%),linear-gradient(180deg,#fff,#fffdfe 60%,#fff7f9);background-attachment:fixed}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}h1,h2,h3{font-family:Cormorant Garamond,Georgia,serif;font-weight:500;letter-spacing:.01em}.scene-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;z-index:0;pointer-events:none;transform:translateZ(0);backface-visibility:hidden}.content{position:relative;z-index:1}.hero{height:100vh;height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 1.5rem;position:relative}.hero-inner{position:relative}.hero-inner:before{content:"";position:absolute;top:-18%;right:-12%;bottom:-18%;left:-12%;background:radial-gradient(closest-side,#fffdf799,#fffdf700 75%);z-index:-1;pointer-events:none}.line{display:block;overflow:hidden}.line>span{display:inline-block;transform:translateY(115%)}.hero.go .line>span{animation:lineUp 1.1s var(--ease) both}.hero.go .bismillah>span{animation-delay:.1s}.hero.go .eyebrow>span{animation-delay:.35s}.hero.go .names .line:nth-child(1)>span{animation-delay:.55s}.hero.go .names .amp>span{animation-delay:.75s}.hero.go .names .line:nth-child(3)>span{animation-delay:.95s}.hero.go .tagline>span{animation-delay:1.25s}.hero.go .meta>span{animation-delay:1.45s}@keyframes lineUp{to{transform:translateY(0)}}.hero .eyebrow{text-transform:uppercase;letter-spacing:.5em;font-size:.7rem;color:var(--gold-light);margin-bottom:1.6rem}.names{font-size:clamp(3.2rem,12vw,9rem);line-height:.95;color:var(--ink);text-shadow:0 4px 30px rgba(194,149,47,.22)}.names .amp{font-style:italic;font-size:.42em;color:var(--gold);margin:.12em 0}.hero .tagline{margin-top:1.6rem;font-size:clamp(.9rem,2.5vw,1.15rem);letter-spacing:.32em;text-transform:uppercase;color:var(--rose-deep)}.hero .meta{margin-top:2.4rem;font-family:Cormorant Garamond,serif;font-size:clamp(1.1rem,3vw,1.5rem);font-style:italic;color:var(--gold)}.scroll-hint{position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%);font-size:.62rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold-light);opacity:0}.hero.go .scroll-hint{animation:fadeIn 1s var(--ease) 2s forwards,bob 2.4s ease-in-out 2s infinite}@keyframes fadeIn{to{opacity:.7}}@keyframes bob{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,9px)}}.panel-section{min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;padding:clamp(4rem,12vh,8rem) 1.5rem}.glass{background:var(--glass-tint-solid)}@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.glass{background:var(--glass-tint);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%)}}.panel{position:relative;width:min(720px,100%);border-radius:22px;padding:clamp(2.4rem,6vw,4rem);text-align:center;border:1px solid var(--glass-edge);border-top-color:var(--glass-edge-lit);border-left-color:#ffffff5c;box-shadow:0 18px 50px var(--glass-shadow),inset 0 1px 1px #ffffff4d,inset 0 -1px 1px #7864460f}.panel.left{text-align:left}.panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(255,255,255,.5),rgba(255,255,255,0) 42%,var(--glass-gold));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.panel h2{font-size:clamp(2rem,6vw,3.4rem);color:var(--rose-deep)}.divider{width:60px;height:1px;background:var(--gold);margin:1.3rem auto 2rem;position:relative}.panel.left .divider{margin-left:0}.divider:after{content:"✦";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--gold);font-size:.75rem}.panel.left .divider:after{left:0}.lead{font-family:Cormorant Garamond,serif;font-size:clamp(1.2rem,3vw,1.7rem);line-height:1.7;font-style:italic;color:var(--ink)}.place-big{font-family:Cormorant Garamond,serif;font-size:clamp(1.6rem,5vw,2.6rem);color:var(--rose-deep);margin-bottom:.6rem}.info-line{margin-top:1.1rem;font-size:.9rem;letter-spacing:.06em;color:#4a3a2cd9}.countdown{display:flex;justify-content:center;gap:clamp(1rem,5vw,2.8rem);flex-wrap:wrap}.unit{min-width:70px}.num{font-family:Cormorant Garamond,serif;font-size:clamp(2.2rem,7vw,3.6rem);color:var(--rose-deep);line-height:1}.label{text-transform:uppercase;letter-spacing:.25em;font-size:.6rem;color:var(--gold-light);margin-top:.5rem}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:1.4rem}.event{padding:1.8rem 1.4rem;border:1px solid rgba(199,154,62,.3);border-radius:12px;background:#ffffff73}.event h3{font-size:1.7rem;color:var(--rose-deep)}.event .time{color:var(--gold);letter-spacing:.2em;font-size:.82rem;margin:.3rem 0 .7rem}.event .place{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.2rem;color:var(--rose-deep);margin-bottom:.5rem}.event .detail{font-size:.83rem;line-height:1.6;color:#4a3a2ccc}.btn{display:inline-block;margin-top:1.6rem;padding:1rem 3rem;border:1px solid var(--gold);color:var(--rose-deep);text-decoration:none;text-transform:uppercase;letter-spacing:.3em;font-size:.74rem;transition:background .4s var(--ease),color .4s var(--ease)}.btn:hover{background:var(--gold);color:#fff}footer{text-align:center;padding:3rem 1.5rem 4.5rem;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:#a9763ab3}.reveal-child{opacity:0;transform:translateY(30px);transition:opacity .95s var(--ease),transform .95s var(--ease)}.panel-body.in .reveal-child{opacity:1;transform:none}.panel-body.in .reveal-child:nth-child(1){transition-delay:.05s}.panel-body.in .reveal-child:nth-child(2){transition-delay:.13s}.panel-body.in .reveal-child:nth-child(3){transition-delay:.21s}.panel-body.in .reveal-child:nth-child(4){transition-delay:.29s}.panel-body.in .reveal-child:nth-child(5){transition-delay:.37s}.panel-body.in .stagger .reveal-child:nth-child(1){transition-delay:.22s}.panel-body.in .stagger .reveal-child:nth-child(2){transition-delay:.32s}.panel-body.in .stagger .reveal-child:nth-child(3){transition-delay:.42s}.panel-body.in .stagger .reveal-child:nth-child(4){transition-delay:.52s}.intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;cursor:pointer;perspective:2400px;overflow:hidden}.invite{position:absolute;top:0;right:0;bottom:0;left:0;transform-style:preserve-3d}.door{position:absolute;top:0;width:50%;height:100%;background:radial-gradient(140% 120% at center,#ffffffbf,#fff0 55%),linear-gradient(135deg,#fff,#fffafc 55%,#fff2f6);box-shadow:inset 0 0 120px #f491ad1f;backface-visibility:hidden;transition:transform 2s cubic-bezier(.76,0,.24,1),opacity .7s ease 1.25s}.door.left{left:0;transform-origin:left center}.door.right{right:0;transform-origin:right center}.door:after{content:"";position:absolute;inset:clamp(18px,3.5vmin,40px);border:1px solid rgba(199,154,62,.55);box-shadow:inset 0 0 0 4px #ddb85f24}.door.left:after{inset-right:0;border-right:none}.door.right:after{inset-left:0;border-left:none}.floral{position:absolute;width:clamp(70px,14vmin,140px);height:auto}.floral .stem,.floral .leaf,.floral .bloom{fill:none;stroke:var(--gold);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.floral .leaf{fill:#ddb85f29}.floral .bloom{stroke:#d94f68}.floral .bud{fill:#ef6d85;stroke:none}.floral.tl{top:clamp(8px,2vmin,28px);left:clamp(8px,2vmin,28px)}.floral.bl{bottom:clamp(8px,2vmin,28px);left:clamp(8px,2vmin,28px);transform:scaleY(-1)}.floral.tr{top:clamp(8px,2vmin,28px);right:clamp(8px,2vmin,28px);transform:scaleX(-1)}.floral.br{bottom:clamp(8px,2vmin,28px);right:clamp(8px,2vmin,28px);transform:scale(-1)}.intro.is-open .door.left{transform:rotateY(-115deg);opacity:0}.intro.is-open .door.right{transform:rotateY(115deg);opacity:0}.invite-face{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:flex;align-items:flex-start;justify-content:center;padding-top:clamp(9vh,14vh,18vh);text-align:center;color:var(--ink);transition:opacity .7s var(--ease),transform .9s var(--ease);pointer-events:none}.intro.is-untie .invite-face,.intro.is-open .invite-face{opacity:0;transform:scale(1.04)}.face-content{padding:0 1.5rem}.invite-eyebrow{text-transform:uppercase;letter-spacing:.42em;font-size:clamp(.6rem,1.6vw,.78rem);color:var(--rose-deep)}.invite-mono{margin:1.1rem 0 .4rem;color:var(--gold);font-size:clamp(1.3rem,4vw,2rem);letter-spacing:.4em}.invite-names{font-family:Cormorant Garamond,serif;font-weight:500;font-size:clamp(2.8rem,11vw,7rem);line-height:1;color:var(--ink)}.invite-names .amp{font-style:italic;color:var(--gold)}.invite-divider{width:clamp(60px,12vw,120px);height:1px;background:var(--gold);margin:1.6rem auto 1rem;position:relative}.invite-divider:after{content:"✦";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--gold);font-size:.7rem}.invite-date{font-family:Cormorant Garamond,serif;font-style:italic;font-size:clamp(1.1rem,3vw,1.6rem);color:var(--rose-deep)}.tap-hint{position:absolute;left:0;right:0;bottom:clamp(5vh,7vh,9vh);z-index:5;text-align:center;text-transform:uppercase;letter-spacing:.32em;font-size:clamp(.62rem,1.6vw,.74rem);color:var(--rose-deep);animation:tapPulse 1.9s ease-in-out infinite}.intro.is-untie .tap-hint,.intro.is-open .tap-hint{opacity:0;animation:none;transition:opacity .4s ease}@keyframes tapPulse{0%,to{opacity:.45;letter-spacing:.32em}50%{opacity:1;letter-spacing:.4em}}.ribbon{position:absolute;left:0;top:70%;transform:translateY(-50%);width:100%;height:clamp(44px,6.5vw,62px);z-index:6;pointer-events:none}.ribbon-strip{position:absolute;top:0;height:100%;width:52%;background:linear-gradient(180deg,#b9842c,#e6b657 16%,#f8da86,#e6b657 84%,#a9761f);box-shadow:0 6px 22px #785c2833;transition:transform .85s var(--ease) .35s,opacity .6s ease .45s}.ribbon-strip.left{left:0}.ribbon-strip.right{right:0}.intro.is-untie .ribbon-strip.left,.intro.is-open .ribbon-strip.left{transform:translate(-130%);opacity:0}.intro.is-untie .ribbon-strip.right,.intro.is-open .ribbon-strip.right{transform:translate(130%);opacity:0}.bow{position:absolute;left:50%;top:50%;width:clamp(120px,22vw,180px);height:clamp(80px,15vw,120px);transform:translate(-50%,-50%)}.bow .loop{position:absolute;top:50%;width:42%;height:78%;background:linear-gradient(135deg,#f6d57f,#c8922f 70%,#a9761f);box-shadow:inset 0 0 10px #78501473;transition:transform .7s var(--ease),opacity .55s ease .08s}.bow .loop.l{right:50%;transform:translateY(-50%) rotate(-20deg);transform-origin:right center;border-radius:70% 28%}.bow .loop.r{left:50%;transform:translateY(-50%) rotate(20deg);transform-origin:left center;border-radius:28% 70%}.intro.is-untie .loop.l,.intro.is-open .loop.l{transform:translate(-40%,-50%) rotate(-95deg) scale(.35);opacity:0}.intro.is-untie .loop.r,.intro.is-open .loop.r{transform:translate(40%,-50%) rotate(95deg) scale(.35);opacity:0}.bow .tail{position:absolute;top:54%;width:14%;height:70%;background:linear-gradient(180deg,#e3b24c,#9a6c1d);transition:transform .8s var(--ease) .06s,opacity .55s ease .18s}.bow .tail.l{left:40%;transform:rotate(12deg);transform-origin:top center}.bow .tail.r{left:60%;transform:rotate(-12deg);transform-origin:top center}.intro.is-untie .tail.l,.intro.is-open .tail.l{transform:rotate(46deg) translateY(60%);opacity:0}.intro.is-untie .tail.r,.intro.is-open .tail.r{transform:rotate(-46deg) translateY(60%);opacity:0}.bow .knot{position:absolute;left:50%;top:50%;width:16%;height:46%;transform:translate(-50%,-50%);border-radius:4px;background:linear-gradient(135deg,#efc560,#8f6519);box-shadow:inset 0 0 6px #5a3c0f80;z-index:2;transition:transform .6s var(--ease),opacity .45s ease .12s}.intro.is-untie .knot,.intro.is-open .knot{transform:translate(-50%,-50%) scale(.4);opacity:0}@media (prefers-reduced-motion: reduce){.line>span{animation:none;transform:none}.scroll-hint{animation:none;opacity:.6}.reveal-child{opacity:1;transform:none;transition:none}.tap-hint{animation:none;opacity:.8}}.arabic{font-family:Amiri,Scheherazade New,Traditional Arabic,serif;direction:rtl}.hero .bismillah{font-size:clamp(1.4rem,4.5vw,2.4rem);color:var(--gold);margin-bottom:1.6rem;text-shadow:0 2px 20px rgba(230,160,184,.35)}.ayah-panel{text-align:center}.ayah-arabic{font-size:clamp(1.5rem,5vw,2.6rem);line-height:2;color:var(--rose-deep)}.ayah-translation{font-family:Cormorant Garamond,serif;font-style:italic;font-size:clamp(1.1rem,3vw,1.55rem);line-height:1.7;color:var(--ink)}.ayah-ref{margin-top:1.2rem;text-transform:uppercase;letter-spacing:.25em;font-size:.7rem;color:var(--gold-light)}.invite-bismillah{font-size:clamp(1.2rem,4vw,1.9rem);color:#a8842e;margin-bottom:.5rem}.event-title{font-size:clamp(2.6rem,9vw,4.6rem);color:var(--rose-deep)}.event-sub{font-family:Cormorant Garamond,serif;font-style:italic;font-size:clamp(1rem,3vw,1.4rem);color:var(--ink);margin-top:.3rem}.event-when{text-transform:uppercase;letter-spacing:.22em;font-size:.8rem;color:var(--gold);margin-bottom:1.2rem}.menu{list-style:none;margin:1.6rem auto 0;max-width:480px}.menu li{font-family:Cormorant Garamond,serif;font-size:clamp(1.05rem,2.6vw,1.35rem);color:var(--ink);padding:.7rem 0;border-bottom:1px solid rgba(199,154,62,.3)}.menu li:last-child{border-bottom:none}.sketch{display:block;height:auto;margin:0 auto 1.6rem;overflow:visible}.sketch.dancers{width:min(380px,90%)}.sketch.nikah-book{width:min(400px,88%)}.sketch .ln{fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:700;stroke-dashoffset:700;filter:drop-shadow(0 0 5px rgba(212,175,110,.45))}.sketch .soft{opacity:.55}.panel-body.in .sketch .ln{animation:sketchDraw 1.8s var(--ease) .2s forwards}@keyframes sketchDraw{to{stroke-dashoffset:0}}.dancers .dancer,.dancers .arm{transform-box:fill-box;transform-origin:center bottom}.panel-body.in .dancers .d-left{animation:danceSway 1.9s ease-in-out 1.8s infinite alternate}.panel-body.in .dancers .d-right{animation:danceSway 1.9s ease-in-out 2.15s infinite alternate}.panel-body.in .dancers .arm-l{animation:armWaveL 1.3s ease-in-out 1.8s infinite alternate}.panel-body.in .dancers .arm-r{animation:armWaveR 1.3s ease-in-out 1.8s infinite alternate}@keyframes danceSway{0%{transform:rotate(-5deg) translateY(0)}to{transform:rotate(5deg) translateY(-6px)}}@keyframes armWaveL{0%{transform:rotate(-7deg)}to{transform:rotate(9deg)}}@keyframes armWaveR{0%{transform:rotate(7deg)}to{transform:rotate(-9deg)}}.nikah-book .sign{stroke-dasharray:160;stroke-dashoffset:160}.panel-body.in .nikah-book .sign{animation:sketchDraw 1.1s var(--ease) 2.7s forwards}.nikah-book .pen{transform-box:fill-box;transform-origin:center}.panel-body.in .nikah-book .pen{animation:penWrite 1.2s ease 1.9s both}@keyframes penWrite{0%{transform:translate(0) rotate(0)}55%{transform:translate(-54px,96px) rotate(-4deg)}to{transform:translate(-54px,96px) rotate(-4deg)}}@media (prefers-reduced-motion: reduce){.sketch .ln{stroke-dashoffset:0;animation:none}.dancers .dancer,.dancers .arm,.nikah-book .pen{animation:none}}@media (max-width: 640px){.hero .eyebrow{letter-spacing:.25em;font-size:.6rem}.hero .tagline{letter-spacing:.16em}.invite-eyebrow{letter-spacing:.22em}.event-when{letter-spacing:.16em}.btn{letter-spacing:.22em;padding:.9rem 2.2rem}.panel-section{padding:5rem 1rem}.panel{border-radius:18px;padding:2rem 1.4rem}.countdown{gap:.8rem}.unit{min-width:56px}.sketch.dancers{width:min(300px,92%)}.sketch.nikah-book{width:min(290px,90%)}.invite-names{font-size:clamp(2.2rem,12vw,3.4rem)}.invite-eyebrow{font-size:.62rem}.invite-face{padding-top:12vh}.floral{width:clamp(54px,18vw,84px)}.ribbon{top:72%}.tap-hint{bottom:5vh}}@media (max-width: 380px){.names{font-size:clamp(2.6rem,16vw,4rem)}.invite-names{font-size:2rem}}@media (max-width: 768px){.glass{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#fffcf9f2}.panel{box-shadow:0 14px 40px #785c282e}}
