:root{--gold: #ffd54a;--amber: #ffa800;--pink: #ff3d6e;--cyan: #22d3ee;--violet: #8b5cf6;--ink: #1b0b2e}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:Poppins,system-ui,sans-serif;color:#fff;overflow-x:hidden;background:radial-gradient(1200px 700px at 50% 105%,#8a1c4d 0%,transparent 60%),radial-gradient(900px 600px at 15% 10%,#3b1a7a 0%,transparent 60%),radial-gradient(900px 600px at 90% 20%,#5a1458 0%,transparent 60%),linear-gradient(#0d0524,#1a0834 60%,#2a0a3a);background-attachment:fixed;min-height:100svh}#fx{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5}.stars{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0}.star{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;animation:twinkle var(--d, 3s) ease-in-out infinite;animation-delay:var(--delay, 0s);box-shadow:0 0 6px 1px #ffe696cc}@keyframes twinkle{0%,to{opacity:.15;transform:scale(.6)}50%{opacity:1;transform:scale(1.3)}}.petals{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;overflow:hidden}.petal{position:absolute;top:-40px;width:var(--s, 14px);height:calc(var(--s, 14px) * 1.3);background:radial-gradient(circle at 30% 30%,#ffd54a,#ff8a00);border-radius:80% 0;opacity:.85;animation:fall var(--t, 10s) linear infinite,sway var(--sw, 3s) ease-in-out infinite alternate;animation-delay:var(--delay, 0s)}.petal.p2{background:radial-gradient(circle at 30% 30%,#ff7aa2,#e0155a)}@keyframes fall{to{top:110vh;rotate:720deg}}@keyframes sway{0%{translate:-30px 0}to{translate:40px 0}}.lights{position:fixed;top:0;left:0;right:0;height:90px;z-index:3;pointer-events:none}.lights svg{width:100%;height:100%}.bulb{animation:bulb 1.6s ease-in-out infinite;animation-delay:var(--delay);transform-box:fill-box;transform-origin:center}@keyframes bulb{0%,to{opacity:.35;filter:drop-shadow(0 0 2px currentColor)}50%{opacity:1;filter:drop-shadow(0 0 10px currentColor) drop-shadow(0 0 18px currentColor)}}.garland{position:fixed;top:0;width:56px;height:62vh;z-index:3;pointer-events:none;background:radial-gradient(circle at 50% 14px,#ffb300 0 9px,#ff7a00 10px 12px,transparent 13px) 0 0 / 28px 28px repeat-y;filter:drop-shadow(0 0 6px rgba(255,160,0,.6));transform-origin:top center;animation:swing 4s ease-in-out infinite alternate;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}.garland.left{left:6px}.garland.right{right:6px;animation-delay:-2s}@keyframes swing{0%{rotate:-1.5deg}to{rotate:1.5deg}}.stage{position:relative;z-index:4;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:100px 20px 140px}.brand{letter-spacing:.5em;font-size:.8rem;font-weight:500;background:linear-gradient(90deg,var(--cyan),var(--violet),var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent;animation:fadeUp .8s both}.title{font-family:Yatra One,serif;font-weight:400;line-height:1;margin:10px 0 14px;font-size:clamp(2.2rem,8vw,4.8rem);white-space:nowrap;background:linear-gradient(180deg,#fff6c8,#ffd54a 45%,#ff9a00);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 22px rgba(255,170,0,.55));animation:fadeUp .9s .1s both,glowPulse 3s ease-in-out infinite}@keyframes glowPulse{50%{filter:drop-shadow(0 0 36px rgba(255,190,40,.9))}}.sub{max-width:520px;color:#ffe9c7;font-size:clamp(.95rem,2.4vw,1.1rem);line-height:1.6;animation:fadeUp 1s .25s both}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.gift-wrap{position:relative;margin-top:28px;width:min(300px,70vw);aspect-ratio:1;display:grid;place-items:center;animation:fadeUp 1s .4s both}.rays{position:absolute;top:-90%;right:-90%;bottom:-90%;left:-90%;border-radius:50%;z-index:0;background:repeating-conic-gradient(from 0deg,rgba(255,215,90,.28) 0 7deg,transparent 7deg 22deg);-webkit-mask-image:radial-gradient(circle,#000 8%,transparent 52%);mask-image:radial-gradient(circle,#000 8%,transparent 52%);animation:spin 24s linear infinite;transition:opacity .6s,scale .6s}@keyframes spin{to{rotate:360deg}}.halo{position:absolute;top:-12%;right:-12%;bottom:-12%;left:-12%;border-radius:50%;z-index:0;background:radial-gradient(circle,rgba(255,190,60,.55),rgba(255,61,110,.25) 50%,transparent 70%);animation:breathe 2.4s ease-in-out infinite}@keyframes breathe{50%{scale:1.15;opacity:.75}}.gift{position:relative;z-index:1;width:100%;height:100%;background:none;border:0;cursor:pointer;animation:bob 2.2s ease-in-out infinite;filter:drop-shadow(0 0 28px rgba(255,170,40,.65));-webkit-tap-highlight-color:transparent;transition:scale .2s}.gift:hover{scale:1.07}.gift:focus-visible{outline:3px dashed var(--gold);outline-offset:8px;border-radius:20px}@keyframes bob{0%,to{translate:0 0}50%{translate:0 -14px}}#giftLid{transform-box:fill-box;transform-origin:50% 100%;transition:transform .7s cubic-bezier(.3,1.6,.5,1)}.gift.shake{animation:shake .6s both}@keyframes shake{0%,to{rotate:0}15%{rotate:-9deg}30%{rotate:9deg}45%{rotate:-8deg}60%{rotate:8deg}75%{rotate:-4deg}90%{rotate:4deg}}.gift.open{animation:none}.gift.open #giftLid{transform:translate(18px,-90px) rotate(24deg)}.gift-wrap.opened .rays{scale:1.5;opacity:1;animation-duration:6s}.tap{position:absolute;bottom:-46px;font-weight:500;color:var(--gold);letter-spacing:.04em;animation:tapPulse 1.6s ease-in-out infinite;white-space:nowrap}@keyframes tapPulse{50%{opacity:.45;transform:scale(.96)}}.diyas{position:fixed;bottom:0;left:0;right:0;z-index:3;display:flex;justify-content:space-around;align-items:flex-end;padding:0 4vw 14px;pointer-events:none}.diya{position:relative;width:clamp(54px,9vw,92px);aspect-ratio:2 / 1}.diya:before{content:"";position:absolute;top:40%;right:0;bottom:0;left:0;border-radius:0 0 100px 100px/0 0 100% 100%;background:linear-gradient(#ff8a3d,#b3340b 70%,#6b1c05);box-shadow:0 0 22px #ff8c008c,inset 0 6px 8px #ffdc9666}.diya:after{content:"";position:absolute;left:50%;top:40%;width:32%;height:10%;translate:-50% -20%;background:#ffcf70;border-radius:50%}.diya i{position:absolute;left:50%;bottom:58%;width:22%;height:80%;translate:-50% 0;border-radius:50%/70% 70% 30% 30%;background:radial-gradient(ellipse at 50% 80%,#fff 0,#fff 15%,#ffe27a 35%,#ff8a00 70%,#ff3c0000);transform-origin:50% 100%;animation:flame .35s ease-in-out infinite alternate;filter:blur(.4px) drop-shadow(0 0 14px #ffa000) drop-shadow(0 0 30px #ff6a00)}.diya:nth-child(2n) i{animation-duration:.45s}.diya:nth-child(3n) i{animation-duration:.3s}@keyframes flame{0%{scale:1 1;rotate:-3deg}to{scale:.88 1.12;rotate:3deg}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:16px;overflow-y:auto;background:#0a0218b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade .4s both}.overlay[hidden]{display:none}@keyframes fade{0%{opacity:0}}.card{position:relative;width:min(940px,100%);margin:auto;padding:18px 28px;color:#3a1d0f;border-radius:26px;background:linear-gradient(180deg,#fffaf0,#ffefd0);box-shadow:0 0 0 3px #ffc933,0 0 0 7px #ff8c0059,0 30px 80px #0000008c,0 0 90px #ffaa2880;animation:pop .7s cubic-bezier(.2,1.4,.4,1) both}.card:before{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border-radius:20px;border:1.5px dashed rgba(200,90,0,.35);pointer-events:none}@keyframes pop{0%{opacity:0;transform:translateY(80px) scale(.7) rotate(-3deg)}}.close{position:absolute;top:12px;right:14px;width:34px;height:34px;border-radius:50%;border:0;background:#00000012;font-size:22px;cursor:pointer;color:#7a3a10;z-index:2}.close:hover{background:#00000026}.card-head{text-align:center;margin-bottom:10px}.emoji{font-size:1.3rem;animation:bob 2s ease-in-out infinite}.card h2{font-family:Yatra One,serif;font-weight:400;font-size:1.5rem;color:#b3003c;margin:4px 0}.card-head p{font-size:.9rem;color:#7a4a2a}form{display:grid;grid-template-columns:repeat(6,1fr);gap:9px 12px;position:relative;align-items:end}.s1{grid-column:span 1}.s2{grid-column:span 2}.s3{grid-column:span 3}.s4{grid-column:span 4}.s6{grid-column:1 / -1}@media(max-width:760px){form{grid-template-columns:1fr 1fr}.s1,.s2{grid-column:span 1}.s3,.s4,.s6{grid-column:1 / -1}}label{display:grid;gap:4px;font-size:.78rem;font-weight:600;color:#8a4a1a}input,textarea{font:inherit;font-size:.95rem;font-weight:400;color:#2c140a;width:100%;padding:8px 12px;border-radius:11px;border:1.5px solid #f0c48a;background:#fff;transition:border-color .2s,box-shadow .2s}input:focus,textarea:focus{outline:0;border-color:#ff8a00;box-shadow:0 0 0 4px #ffa50040}input.bad,textarea.bad{border-color:#e0245e;background:#fff2f6}textarea{resize:vertical}.geo{display:flex;gap:6px;flex-direction:column;align-items:flex-start;line-height:1.3;font-size:.78rem;color:#8a5a3a}.ghost{font:inherit;font-weight:600;font-size:.85rem;padding:9px 14px;border-radius:999px;border:1.5px solid #ff8a00;background:#fff6e6;color:#b34a00;cursor:pointer;transition:.2s}.ghost:hover{background:#ffe3b8}.ghost.ok{background:#e6fff0;border-color:#1fa85a;color:#0b7a3c}.err{color:#d0104c;font-size:.85rem;min-height:0;margin:0;font-weight:500}.submit{position:relative;overflow:hidden;border:0;cursor:pointer;font:inherit;font-weight:600;font-size:1.05rem;color:#fff;padding:12px 22px;border-radius:14px;background:linear-gradient(135deg,#ff3d6e,#ff8a00 60%,#ffc933);box-shadow:0 8px 22px #ff5a3c73;transition:transform .2s,box-shadow .2s,opacity .2s}.submit:hover{transform:translateY(-2px) scale(1.01);box-shadow:0 12px 28px #ff5a3c99}.submit:after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skew(-20deg);animation:shine 2.8s infinite}@keyframes shine{to{left:140%}}.submit:disabled{opacity:.7;cursor:wait}.fine{text-align:center;font-size:.72rem;color:#a07a5a}.done{text-align:center;padding:18px 6px 6px;display:grid;gap:12px;justify-items:center}.done[hidden]{display:none}.done .big{font-size:4rem;animation:bob 1.6s ease-in-out infinite}.done p{color:#6a3a1a;max-width:420px;line-height:1.6}.wish{color:#b3003c!important}@media(max-width:520px){.garland{width:38px;background-size:20px 20px}.card{padding:24px 16px 18px;border-radius:22px}.stage{padding-top:90px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}.logo{height:clamp(52px,9vw,84px);width:auto;max-width:90vw;object-fit:contain;filter:drop-shadow(0 0 14px rgba(139,92,246,.55));animation:fadeUp .8s both;margin-bottom:-6px}.sound{position:fixed;top:74px;right:16px;z-index:6;width:42px;height:42px;border-radius:50%;border:1.5px solid rgba(255,213,74,.6);background:#1406288c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:1.15rem;cursor:pointer;color:#fff;transition:.2s}.sound:hover{scale:1.1;background:#3c145ab3}.sound.off{opacity:.6}form[hidden],.card-head[hidden],.done[hidden]{display:none!important}.done{padding:36px 6px 30px}.done-logo{height:64px;width:auto;padding:10px 22px;border-radius:18px;background:linear-gradient(135deg,#1b0b2e,#3b1a7a 60%,#5a1458);box-shadow:0 8px 24px #3b1a7a73,0 0 0 3px #ffc933;animation:bob 2.2s ease-in-out infinite}.rider{width:min(440px,100%);border-radius:18px;overflow:hidden;box-shadow:0 8px 24px #3b1a7a66,0 0 0 3px #ffc933}.rider svg{display:block;width:100%;height:auto}.rider .houses{animation:scrollx 7s linear infinite}@keyframes scrollx{to{translate:-400px 0}}.rider .road{animation:dash .5s linear infinite}@keyframes dash{to{stroke-dashoffset:-40}}.rider .spin{transform-box:fill-box;transform-origin:center;animation:spin .45s linear infinite}.rider .ride{animation:rbob .35s ease-in-out infinite alternate}@keyframes rbob{to{translate:0 -2px}}.rider .lean{transform-box:fill-box;transform-origin:bottom center;animation:lean 1.4s ease-in-out infinite alternate}@keyframes lean{to{rotate:3deg}}.rider .speed{animation:zoom .5s linear infinite}@keyframes zoom{0%{translate:30px 0;opacity:0}50%{opacity:.8}to{translate:-30px 0;opacity:0}}.diya-gap{flex:0 0 min(300px,46vw)}.diyas{justify-content:space-between;padding:0 5vw 14px}.sound.needs{animation:needs 1.4s ease-in-out infinite}.sound.needs:after{content:"Tap for sound";position:absolute;right:50px;top:50%;translate:0 -50%;white-space:nowrap;font:500 .72rem Poppins,sans-serif;padding:5px 10px;border-radius:999px;background:#140628bf;color:var(--gold);pointer-events:none}@keyframes needs{0%,to{box-shadow:0 0 #ffd54a99}50%{box-shadow:0 0 0 10px #ffd54a00}}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:20px;text-align:center;background:radial-gradient(circle at 50% 45%,#5a1458d1,#0d0524f0);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity .6s,visibility .6s}.splash[hidden]{display:none}.splash.gone{opacity:0;visibility:hidden}.splash-inner{display:grid;gap:18px;justify-items:center;animation:fadeUp .8s both}.splash-logo{height:clamp(56px,12vw,90px);width:auto;filter:drop-shadow(0 0 16px rgba(139,92,246,.6))}.splash p{color:#ffe9c7;font-size:clamp(1rem,3vw,1.2rem)}.splash small{color:var(--gold);opacity:.8}.enter{position:relative;overflow:hidden;border:0;cursor:pointer;font:600 1.1rem Poppins,sans-serif;color:#fff;padding:16px 30px;border-radius:999px;background:linear-gradient(135deg,#ff3d6e,#ff8a00 60%,#ffc933);box-shadow:0 0 #ffaa28b3,0 10px 30px #ff5a3c80;animation:ring 1.6s ease-out infinite}.enter:hover{scale:1.05}@keyframes ring{to{box-shadow:0 0 0 26px #ffaa2800,0 10px 30px #ff5a3c80}}.addr{display:grid;grid-template-columns:1fr 2fr;gap:12px;align-items:stretch}.addr-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:9px 12px;align-content:start}.addr .geo{justify-content:center;align-items:center;text-align:center;gap:6px;padding:12px;border:2px dashed #f0b266;border-radius:16px;background:linear-gradient(180deg,#fff6e6,#ffe9c4)}.geo-pin{font-size:1.8rem;animation:bob 2s ease-in-out infinite;line-height:1}.addr .geo strong{color:#b3003c;font-size:.95rem}textarea[name=notes]{resize:none;height:38px}@media(max-width:760px){.addr{grid-template-columns:1fr}.addr-fields{grid-template-columns:1fr 1fr}}.geo-col{position:relative;min-height:0}.addr .geo{position:absolute;top:0;right:0;bottom:0;left:0;padding:8px 10px;gap:5px;overflow:hidden}.geo-pin{font-size:1.1rem;display:inline-block}.addr .geo strong{display:flex;align-items:center;gap:6px}.addr .geo span#geoStatus{font-size:.7rem;line-height:1.25}.addr .geo .ghost{padding:7px 12px;font-size:.8rem}@media(max-width:760px){.geo-col{min-height:120px}}.row4{display:grid;grid-template-columns:repeat(4,1fr);gap:9px 12px}@media(max-width:760px){.row4{grid-template-columns:1fr 1fr}}.addr.top{align-items:end}textarea[name=wishes]{resize:none;height:56px}
