*{box-sizing:border-box}
:root{--gold:#ffe08a;--orange:#ff963d;--pink:#ff72ce;--cream:#fff5d8;--night:#160820}
html{scroll-behavior:smooth;scroll-snap-type:y proximity}
body{margin:0;background:#100619;color:var(--cream);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;overflow-x:hidden}
#fireworks{position:fixed;inset:0;width:100%;height:100%;z-index:4;pointer-events:none}
.star-layer{position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(#fff9d9 1px,transparent 1.5px),radial-gradient(#ffcefa 1px,transparent 1.5px);background-size:71px 71px,113px 113px;background-position:0 0,29px 45px;opacity:.32;animation:stars 12s linear infinite}
@keyframes stars{to{background-position:71px 71px,-84px 158px}}
.screen{min-height:100svh;position:relative;display:flex;align-items:center;justify-content:center;padding:28px 18px 170px;overflow:hidden;scroll-snap-align:start;isolation:isolate}
.screen:before{content:"";position:absolute;inset:-20%;z-index:-2;background:radial-gradient(ellipse at 50% 35%,#67265c 0%,#321446 42%,#100619 78%);animation:aurora 12s ease-in-out infinite alternate}
.wishes-screen:before{background:radial-gradient(ellipse at 50% 40%,#6a293e 0%,#32123f 43%,#100619 80%)}
.create-screen:before{background:radial-gradient(ellipse at 50% 40%,#3c286f 0%,#24113f 48%,#100619 80%)}
@keyframes aurora{to{transform:rotate(6deg) scale(1.1);filter:hue-rotate(20deg)}}
.hero-content,.wish-content,.create-content{width:min(100%,460px);text-align:center;position:relative}
.eyebrow{font-size:.74rem;letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin:0 0 18px}
.small-prompt{font-weight:800;color:#fff3be;animation:pulseText 1s infinite alternate}
@keyframes pulseText{to{text-shadow:0 0 16px #ffb63b;transform:scale(1.03)}}
h1{font-size:clamp(3.4rem,17vw,5.6rem);line-height:.82;letter-spacing:-2px;margin:20px 0 13px;color:var(--gold);text-shadow:0 0 12px #ffbd4d,0 0 40px #ff6d37;animation:titleGlow 1.8s ease-in-out infinite alternate}
h1 span{display:block;margin-top:14px;color:#fff1c2}
@keyframes titleGlow{to{text-shadow:0 0 24px #ffe08a,0 0 65px #ff6b31}}
.hindi-title{font-size:1.35rem;font-weight:800;color:#fff3d0;margin:14px 0}
.diyas{display:flex;justify-content:center;gap:20px;font-size:clamp(2.5rem,11vw,3.8rem);margin:23px 0}
.diya{display:inline-block;filter:drop-shadow(0 0 12px #ff9a3c);animation:flicker 1.1s ease-in-out infinite alternate}
.diya:nth-child(2){animation-delay:.3s}.diya:nth-child(3){animation-delay:.6s}
@keyframes flicker{to{transform:translateY(-8px) rotate(4deg);filter:drop-shadow(0 0 24px #ffe08a)}}
.hint{line-height:1.8;color:#f1d8ee;max-width:340px;margin:14px auto}
.scroll-link{display:inline-block;color:var(--gold);text-decoration:none;border:1px solid #ffe08a66;border-radius:999px;padding:10px 16px;margin-top:18px;background:#fff1c00a;animation:bob 1.7s infinite}
@keyframes bob{50%{transform:translateY(5px)}}
.rocket-launch{display:block;position:relative;width:92px;height:108px;border:1px solid #ffdc8a80;border-radius:48px;background:#301540aa;margin:15px auto 22px;cursor:pointer;box-shadow:0 0 24px #ff9b3540;overflow:hidden}
.rocket{display:block;font-size:3.2rem;transform:rotate(-42deg);animation:rocketHover 1.2s ease-in-out infinite alternate}
@keyframes rocketHover{to{transform:translateY(-5px) rotate(-42deg)}}
.rocket-trail{position:absolute;width:8px;height:28px;bottom:4px;left:42px;border-radius:50%;background:linear-gradient(#fff3a1,#ff8d2b,transparent);filter:blur(2px);animation:flame .3s infinite alternate}
@keyframes flame{to{height:40px;opacity:.6}}
.floating-lamp{position:absolute;font-size:2rem;animation:float 5s ease-in-out infinite alternate;pointer-events:none}
.l1{left:8%;top:18%}.l2{right:9%;top:26%;animation-delay:-2s}.l3{left:14%;bottom:24%;animation-delay:-1s}
@keyframes float{to{transform:translateY(-25px) rotate(12deg)}}
.rangoli{position:absolute;top:6%;font-size:clamp(8rem,45vw,17rem);color:#ffd76a19;line-height:1;animation:spin 55s linear infinite;pointer-events:none}
@keyframes spin{to{transform:rotate(360deg)}}
.wish-card{position:relative;border:1px solid #ffe08a8a;background:linear-gradient(155deg,#351942eF,#1d102deF);border-radius:25px;padding:23px 19px;box-shadow:0 0 40px #ff9b3524,inset 0 0 24px #ffdc8710;animation:cardfloat 4s ease-in-out infinite}
@keyframes cardfloat{50%{transform:translateY(-5px)}}
.card-diyas{font-size:1.8rem;margin-bottom:8px;filter:drop-shadow(0 0 8px #ff9b3b)}
.wish-card h2{color:var(--gold);font-size:1.25rem;margin:6px 0 14px}
.wish-message{font-size:1.05rem;line-height:2;margin:0;color:#fff5df}
.gold-wish{font-weight:800;color:var(--gold);line-height:1.8}
.signature{color:#f4b8ff;line-height:1.8;margin-bottom:0;overflow-wrap:anywhere}
.gift-wrap{margin:20px 0 5px}
.gift{border:0;background:transparent;font-size:3rem;cursor:pointer;filter:drop-shadow(0 0 15px #ff9b3b);animation:giftbounce 1.4s infinite}
.gift span{display:block}
@keyframes giftbounce{50%{transform:translateY(-7px) rotate(4deg)}}
#giftCaption{margin:0;color:#ffdda0;font-size:.9rem}
.create-content h2{font-size:clamp(2.2rem,10vw,3.3rem);line-height:1.1;color:var(--gold);text-shadow:0 0 24px #ff8b36}
.create-content h2 span{color:#fff0c2}
.preview-note{border:1px solid #ffe08a55;background:#fff1c00a;border-radius:14px;padding:14px;margin:22px 0;color:#ffdf9a;font-size:.9rem}
.primary-button,.secondary-button{display:block;width:100%;min-height:50px;border:0;border-radius:14px;font-weight:850;font-size:1rem;margin:10px 0;cursor:pointer}
.primary-button{background:linear-gradient(100deg,#42f18b,#15c969);color:#062b18;box-shadow:0 0 25px #15c96938}
.secondary-button{background:linear-gradient(100deg,#ffe99c,#ffad55);color:#351339}
.small-note{font-size:.75rem;color:#cbb5d9}
.bottom-dock{position:fixed;z-index:12;bottom:0;left:0;right:0;padding:11px 12px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(180deg,#16082000,#160820f5 22%,#160820 100%);backdrop-filter:blur(13px)}
.dock-inner{max-width:480px;margin:0 auto}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}
.fields label span{display:block;text-align:left;font-size:.72rem;color:#f3d6ff;margin:0 0 4px 3px}
input{width:100%;min-width:0;padding:11px 10px;border:1px solid #8f6b9f;border-radius:11px;background:#261431;color:#fff;font-size:.9rem;outline:none}
input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #ffe08a1c}
input::placeholder{color:#c5adcf}
.dock-buttons{display:grid;grid-template-columns:1.15fr 1fr;gap:8px}
.dock-buttons button{min-height:46px;border:0;border-radius:12px;font-size:.9rem;font-weight:850;padding:9px 5px;cursor:pointer}
.whatsapp-button{background:#20d66f;color:#052b17;box-shadow:0 0 18px #20d66f38}
.copy-button{background:linear-gradient(100deg,#ffe99c,#ffb15b);color:#351339}
#toast{position:fixed;z-index:20;left:50%;bottom:145px;transform:translateX(-50%);max-width:90%;background:#fff0c9;color:#32143c;padding:10px 15px;border-radius:999px;font-size:.86rem;font-weight:750;opacity:0;pointer-events:none;transition:opacity .2s}
#toast.show{opacity:1}
.spark{position:fixed;z-index:3;pointer-events:none;animation:sparkRise 5s linear forwards}
@keyframes sparkRise{0%{transform:translateY(0) scale(.5);opacity:0}15%{opacity:1}100%{transform:translateY(-110vh) rotate(360deg) scale(1.2);opacity:0}}
@media(max-width:360px){.fields{grid-template-columns:1fr;gap:5px}.fields label span{display:none}input{padding:9px}.screen{padding-bottom:190px}.bottom-dock{padding-left:9px;padding-right:9px}.dock-buttons button{font-size:.83rem}.wish-card{padding:18px 14px}}
@media(min-height:800px){.screen{padding-bottom:180px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}


/* Initial curtain reveal: the visitor sees only the rocket until tapping it. */
body.curtain-closed{overflow:hidden}
body.curtain-closed main,
body.curtain-closed .bottom-dock,
body.curtain-closed .star-layer{visibility:hidden}
.curtain-intro{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#12071d;isolation:isolate}
.curtain-intro:before{content:"";position:absolute;inset:-25%;z-index:-2;background:radial-gradient(ellipse at 50% 40%,#7a285d 0%,#3c164f 38%,#12071d 75%);animation:curtainGlow 7s ease-in-out infinite alternate}
@keyframes curtainGlow{to{transform:scale(1.12) rotate(5deg);filter:hue-rotate(20deg)}}
.curtain-panel{position:absolute;top:0;bottom:0;width:51%;z-index:1;background:repeating-linear-gradient(90deg,#6e173d 0,#8d204b 8%,#521239 16%,#8a1e48 24%,#4a1034 32%);box-shadow:inset 0 0 50px #17051c,0 0 30px #0008;border-color:#ffd875}
.curtain-left{left:0;border-right:3px solid #f4c65b;background:repeating-linear-gradient(90deg,#4a1034 0,#7d1944 10%,#9a2852 17%,#57133b 27%,#7d1944 35%)}
.curtain-right{right:0;border-left:3px solid #f4c65b;background:repeating-linear-gradient(90deg,#7d1944 0,#57133b 10%,#9a2852 19%,#4a1034 28%,#7d1944 36%)}
.curtain-intro:after{content:"";position:absolute;inset:12px;border:1px solid #ffdc8a70;pointer-events:none;z-index:2}
.curtain-decoration{position:absolute;top:8%;z-index:3;color:#ffe08a;letter-spacing:12px;font-size:1.1rem;text-shadow:0 0 16px #ffd76a}
.curtain-prompt{position:relative;z-index:4;width:min(90%,390px);text-align:center;padding:28px 18px;border:1px solid #ffe08a9c;border-radius:28px;background:linear-gradient(150deg,#2c123eeF,#170922f2);box-shadow:0 0 55px #ff963d35;transition:opacity .35s,transform .35s}
.curtain-eyebrow{font-size:.72rem;letter-spacing:2px;text-transform:uppercase;color:#ffe08a}
.curtain-title{font-size:clamp(2rem,9vw,3.2rem);margin:14px 0 8px;color:#ffe08a;text-shadow:0 0 20px #ff963d}
.curtain-subtitle{color:#fff0d1;line-height:1.7}
.curtain-rocket{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:150px;height:150px;margin:22px auto 14px;border:1px solid #ffe08a;border-radius:50%;background:radial-gradient(circle,#7d2e59,#35133f 70%);box-shadow:0 0 0 8px #ffe08a12,0 0 35px #ff8e3c6e;cursor:pointer;animation:rocketPulse 1.5s ease-in-out infinite alternate}
.curtain-rocket-icon{display:block;font-size:3.8rem;transform:rotate(-42deg);filter:drop-shadow(0 0 12px #ffb449);animation:rocketHover .8s ease-in-out infinite alternate}
.curtain-rocket-caption{font-size:.85rem;color:#ffe8a4;font-weight:800}
@keyframes rocketPulse{to{transform:scale(1.04);box-shadow:0 0 0 13px #ffe08a10,0 0 55px #ff8e3c9c}}
.curtain-hint{font-size:.82rem;color:#f8d9f2;line-height:1.7}
.curtain-intro.opening .curtain-left{animation:openLeft 1.25s cubic-bezier(.7,0,.2,1) forwards}
.curtain-intro.opening .curtain-right{animation:openRight 1.25s cubic-bezier(.7,0,.2,1) forwards}
.curtain-intro.opening .curtain-prompt{opacity:0;transform:scale(.65);pointer-events:none}
.curtain-intro.opening .curtain-decoration{opacity:0;transition:opacity .35s}
.curtain-intro.opening:after{opacity:0;transition:opacity .4s}
@keyframes openLeft{to{transform:translateX(-105%);}}
@keyframes openRight{to{transform:translateX(105%);}}
.curtain-intro.revealed{display:none}
@media(max-width:360px){.curtain-prompt{padding:22px 12px}.curtain-rocket{width:130px;height:130px}.curtain-title{font-size:2rem}}
@media(prefers-reduced-motion:reduce){.curtain-intro.opening .curtain-left,.curtain-intro.opening .curtain-right{animation-duration:.2s}}

/* Minimal opening state: the curtain hides the whole site; only the rocket invitation shows. */
.curtain-eyebrow,.curtain-title,.curtain-subtitle,.curtain-hint,.curtain-decoration{display:none!important}
.curtain-prompt{width:auto;padding:18px;background:transparent;border:0;box-shadow:none}
.curtain-rocket{margin:0 auto;width:150px;height:150px}
.curtain-rocket-caption{font-size:.9rem;text-shadow:0 0 12px #ffb449}

/* Sender name spotlight and Diwali countdown */
.sender-banner{width:min(100%,360px);margin:20px auto 14px;padding:11px 14px 15px;border:2px solid #ffe08a;border-radius:20px;background:linear-gradient(135deg,#a81e36,#5d123a 65%,#39113d);box-shadow:0 0 0 4px #ffdf8a15,0 0 30px #ff4f5e60,inset 0 0 18px #ffe08a25;position:relative;overflow:hidden;animation:senderPulse 1.8s ease-in-out infinite alternate}
.sender-banner:before{content:"";position:absolute;top:-80%;left:-40%;width:35%;height:260%;background:linear-gradient(90deg,transparent,#ffffff60,transparent);transform:rotate(25deg);animation:shineSweep 3s ease-in-out infinite}
.sender-banner-label{display:block;font-size:.86rem;color:#ffe7a2;font-weight:800;letter-spacing:1px;position:relative}
.sender-banner-name{display:block;margin-top:4px;font-size:clamp(2rem,10vw,3.2rem);line-height:1.1;font-weight:950;overflow-wrap:anywhere;color:#fff7cf;text-shadow:0 2px 0 #9c1830,0 0 10px #ffcf6a,0 0 25px #ff7d39;position:relative;animation:nameBounce 2s ease-in-out infinite}
@keyframes senderPulse{to{box-shadow:0 0 0 7px #ffdf8a10,0 0 45px #ff4f5e80,inset 0 0 25px #ffe08a40}}
@keyframes shineSweep{0%,25%{left:-50%}70%,100%{left:130%}}
@keyframes nameBounce{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
.countdown-card{width:min(100%,360px);margin:0 auto 18px;padding:12px 10px 13px;border-radius:17px;border:1px solid #ffdf8a9c;background:linear-gradient(140deg,#fff9e8,#ffe6a7);color:#971c31;box-shadow:0 0 25px #ffb14a36}
.countdown-heading{margin:0 0 9px;font-size:.94rem;font-weight:900;color:#9e1f36}
.countdown-units{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.countdown-units div{background:#a71e37;border-radius:10px;padding:7px 2px 6px;color:#fff4d2;box-shadow:inset 0 0 8px #ffbd6233}
.countdown-units strong{display:block;font-size:clamp(1.25rem,5vw,1.8rem);font-variant-numeric:tabular-nums;line-height:1.2;color:#fff5d7}
.countdown-units span{display:block;font-size:.7rem;font-weight:800;margin-top:3px}
@media(max-width:360px){.sender-banner{margin:14px auto 10px;padding:9px 10px 12px}.countdown-card{padding:9px 7px 10px;margin-bottom:12px}.countdown-heading{font-size:.82rem}.countdown-units span{font-size:.64rem}}

/* Reference-style sender first: name on top, “की तरफ़ से” directly below. */
.sender-banner{display:flex;flex-direction:column;gap:5px;margin:0 auto 16px;padding:14px 12px 15px;width:min(100%,360px)}
.sender-banner-name{order:0;font-size:clamp(2.35rem,11vw,3.5rem);line-height:1.12}
.sender-banner-label{order:1;font-size:1.05rem;letter-spacing:.5px}
.countdown-card{margin-top:0;margin-bottom:18px}
.hero-content>.eyebrow{margin-top:5px}

.ad-container{width:min(100%,360px);min-height:90px;margin:18px auto 6px;padding:8px;border:1px dashed #ffe08a40;border-radius:12px;background:#16082035;overflow:hidden}
.ad-container:empty{display:none}
.ad-container .adsbygoogle{min-width:0}
