:root{
  --gold:#ffcf5a; --orange:#ff9d2e; --rose:#ff4d6d; --ink:#0a0420;
  --text:#fff4dc;
  --font-head:'Tiro Devanagari Hindi','Hind',serif;
  --font-body:'Hind','Noto Sans Devanagari',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  font-family:var(--font-body);color:var(--text);background:var(--ink);
  display:flex;flex-direction:column;height:100dvh;overflow:hidden;
}

/* ---------- मंच ---------- */
.stage{
  position:relative;flex:1 1 auto;min-height:0;overflow:hidden;
  background:
    radial-gradient(120% 70% at 50% 110%, #7a1f2b 0%, rgba(122,31,43,0) 60%),
    radial-gradient(80% 60% at 20% 0%, #2a1060 0%, rgba(42,16,96,0) 70%),
    linear-gradient(#0a0420, #190838 55%, #2d0c3a);
}
.stars{position:absolute;inset:0;pointer-events:none}
.star{position:absolute;width:2px;height:2px;border-radius:50%;background:#fff;opacity:.2;animation:tw 3s ease-in-out infinite}
@keyframes tw{50%{opacity:1;transform:scale(1.6)}}
#fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}

.mute{
  position:absolute;top:10px;right:10px;z-index:20;width:42px;height:42px;border-radius:50%;
  border:1px solid rgba(255,207,90,.4);background:rgba(10,4,32,.55);color:#fff;font-size:18px;cursor:pointer;
  backdrop-filter:blur(6px);
}

/* ---------- स्क्रीन ---------- */
.screen{
  position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;
  padding:16px;overflow-y:auto;opacity:0;pointer-events:none;transform:scale(.96);
  transition:opacity .7s ease, transform .7s ease;
}
.screen.active{opacity:1;pointer-events:auto;transform:none}

/* ---------- पहला कार्ड ---------- */
.card{
  width:min(440px,100%);text-align:center;padding:26px 22px 24px;border-radius:26px;margin:auto;
  background:linear-gradient(160deg,rgba(255,255,255,.10),rgba(255,255,255,.03));
  border:1px solid rgba(255,207,90,.35);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:0 20px 70px rgba(0,0,0,.5), 0 0 60px rgba(255,157,46,.18), inset 0 0 40px rgba(255,207,90,.05);
  animation:rise .9s cubic-bezier(.2,.9,.3,1) both;
}
@keyframes rise{from{opacity:0;transform:translateY(40px) scale(.95)}}
.diya-big{width:120px;height:84px;margin:-6px auto 6px;display:block;filter:drop-shadow(0 0 22px rgba(255,170,50,.8))}
.flame-core{transform-origin:50px 36px;animation:flick .45s ease-in-out infinite alternate}
.flame-glow{transform-origin:50px 36px;animation:flick .6s ease-in-out infinite alternate-reverse}
@keyframes flick{from{transform:scale(1,.9) skewX(-3deg)}to{transform:scale(1.06,1.08) skewX(3deg)}}

.from{
  display:inline-block;margin-bottom:10px;padding:7px 14px;border-radius:99px;font-size:15px;font-weight:600;
  background:rgba(255,207,90,.14);border:1px solid rgba(255,207,90,.4);color:var(--gold);
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(255,207,90,0)}0%{box-shadow:0 0 0 0 rgba(255,207,90,.4)}}
.title{font-family:var(--font-head);font-size:clamp(32px,9vw,46px);line-height:1.15;font-weight:400}
.gold,.wish-name{
  background:linear-gradient(90deg,#fff1b8,#ffcf5a 35%,#ff9d2e 70%,#fff1b8);background-size:200% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 4s linear infinite;
}
@keyframes shine{to{background-position:-200% 0}}
.sub{margin:10px 0 18px;font-size:16px;color:rgba(255,244,220,.8);line-height:1.5}

#askForm{display:flex;flex-direction:column;gap:12px}
#nameInput,#nameMine{
  width:100%;padding:15px 18px;font:600 19px var(--font-body);text-align:center;color:#fff;
  background:rgba(0,0,0,.35);border:1.5px solid rgba(255,207,90,.45);border-radius:16px;outline:none;transition:.25s;
}
#nameInput::placeholder,#nameMine::placeholder{color:rgba(255,244,220,.45);font-weight:400}
#nameInput:focus,#nameMine:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(255,207,90,.2),0 0 28px rgba(255,157,46,.35)}

.photo-pick{
  display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:16px;cursor:pointer;text-align:left;
  background:rgba(255,255,255,.05);border:1.5px dashed rgba(255,207,90,.4);transition:.25s;
}
.photo-pick:hover{background:rgba(255,207,90,.10)}
.photo-thumb{
  flex:0 0 52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:22px;overflow:hidden;
  background:rgba(255,207,90,.15) center/cover no-repeat;border:2px solid var(--gold);
}
.photo-text b{display:block;font-size:16px;font-weight:600}
.photo-text small{font-size:13px;color:rgba(255,244,220,.6)}

.cta{
  position:relative;overflow:hidden;border:0;cursor:pointer;padding:16px 20px;border-radius:18px;
  font:700 21px var(--font-body);color:#3a0d00;letter-spacing:.02em;
  background:linear-gradient(135deg,#ffe27a,#ff9d2e 60%,#ff6a1f);
  box-shadow:0 8px 28px rgba(255,140,30,.5), inset 0 2px 0 rgba(255,255,255,.5);
  transition:transform .2s, box-shadow .2s;animation:breathe 2.2s ease-in-out infinite;
}
.cta i{font-style:normal;display:inline-block;animation:rock 1.2s ease-in-out infinite}
@keyframes rock{50%{transform:translate(3px,-4px) rotate(8deg)}}
@keyframes breathe{50%{transform:scale(1.03);box-shadow:0 10px 40px rgba(255,140,30,.75), inset 0 2px 0 rgba(255,255,255,.5)}}
.cta::after{
  content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);transform:skewX(-20deg);
  animation:sweep 3s ease-in-out infinite;
}
@keyframes sweep{60%,100%{left:130%}}
.cta:active{transform:scale(.97)}

/* ---------- शुभकामना स्क्रीन ---------- */
.wish{width:min(560px,100%);text-align:center;margin:auto;padding:8px 6px 18px}
.avatar{
  width:132px;height:132px;margin:0 auto 12px;border-radius:50%;position:relative;
  animation:pop 1s cubic-bezier(.2,1.4,.4,1) both .9s;
}
.avatar::before{
  content:"";position:absolute;inset:-8px;border-radius:50%;
  background:conic-gradient(#ffcf5a,#ff4d6d,#ffcf5a,#ff9d2e,#ffcf5a);animation:spin 5s linear infinite;
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));
          mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));
  filter:drop-shadow(0 0 12px rgba(255,170,50,.9));
}
.avatar canvas{width:100%;height:100%;border-radius:50%;display:block}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pop{from{opacity:0;transform:scale(.2) rotate(-30deg)}}

.wish-name{
  display:inline-block;font-family:var(--font-head);font-weight:400;font-size:clamp(40px,12vw,68px);line-height:1.15;
  opacity:0;animation:zoomIn 1s cubic-bezier(.2,1.2,.3,1) forwards 1.1s, shine 4s linear infinite;
  filter:drop-shadow(0 0 18px rgba(255,170,50,.55));word-break:break-word;
}
@keyframes zoomIn{from{opacity:0;transform:scale(.3);filter:blur(12px)}to{opacity:1;transform:none}}
.wish-main{font-family:var(--font-head);font-weight:400;font-size:clamp(22px,6.2vw,34px);line-height:1.4;margin:6px 0 14px;text-shadow:0 2px 20px rgba(0,0,0,.8)}
.wish-main .w{display:inline-block;margin:0 .14em;opacity:0;transform:translateY(16px);animation:wordIn .6s ease forwards}
@keyframes wordIn{to{opacity:1;transform:none}}

.blessings{list-style:none;position:relative;height:64px;margin:6px auto 10px;max-width:480px}
.blessings li{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:clamp(15px,4.2vw,18px);line-height:1.4;padding:8px 14px;border-radius:16px;
  background:rgba(10,4,32,.55);border:1px solid rgba(255,207,90,.28);backdrop-filter:blur(4px);
  opacity:0;transform:translateY(12px);transition:opacity .6s ease, transform .6s ease;
}
.blessings li.on{opacity:1;transform:none}
.wish-from{margin-bottom:16px;font-size:16px;color:var(--gold);opacity:0;animation:wordIn .8s ease forwards;text-shadow:0 2px 12px #000}

.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;opacity:0;animation:wordIn .8s ease forwards}
.btn{
  padding:13px 10px;border-radius:14px;border:0;cursor:pointer;font:600 15px var(--font-body);color:#3a0d00;
  background:linear-gradient(135deg,#ffe27a,#ff9d2e);box-shadow:0 6px 20px rgba(255,140,30,.35);transition:transform .15s;
}
.btn:active{transform:scale(.96)}
.btn.wa{background:linear-gradient(135deg,#4cf08a,#14b857);color:#032b12;box-shadow:0 6px 22px rgba(30,200,100,.4)}
.btn.wa span::before{content:"💬 "}
.btn.ghost{background:rgba(10,4,32,.6);color:var(--text);border:1px solid rgba(255,207,90,.4);box-shadow:none}
#waBtn{grid-column:1/-1;font-size:18px;padding:15px}

/* ---------- मोडल ---------- */
.modal{position:absolute;inset:0;z-index:30;display:grid;place-items:center;padding:14px;background:rgba(5,2,15,.8);backdrop-filter:blur(6px)}
.modal[hidden]{display:none}
.modal-box{max-height:100%;display:flex;flex-direction:column;gap:12px;align-items:center;animation:rise .5s both}
.modal-box img{max-height:68vh;max-width:100%;border-radius:18px;box-shadow:0 0 0 2px var(--gold),0 20px 60px rgba(0,0,0,.7)}
.modal-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}

.toast{
  position:absolute;left:50%;bottom:20px;transform:translate(-50%,30px);z-index:40;padding:10px 18px;border-radius:99px;
  background:#fff4dc;color:#3a0d00;font-weight:600;opacity:0;pointer-events:none;transition:.35s;white-space:nowrap;
}
.toast.show{opacity:1;transform:translate(-50%,0)}

@media (max-width:480px){.wish-main{margin-bottom:6px}.actions{gap:8px}.btn{padding:11px 8px;font-size:14px}#waBtn{padding:13px;font-size:17px}}
@media (max-height:640px){
  .diya-big{display:none}
  .avatar{width:96px;height:96px}
}
@media (prefers-reduced-motion:reduce){
  .cta,.from,.flame-core,.flame-glow,.star{animation:none}
}

/* ---------- नया फ्लो ---------- */
#screenMine .card{margin:auto}
.photo-pick{cursor:pointer}
#openBox .title{font-size:clamp(28px,8vw,40px)}
#openBox .sub small{opacity:.7}
#openBtn{width:100%;font-size:22px;padding:18px 20px}

.wish-name{max-width:100%}
.wish-from{
  font-family:var(--font-head);font-size:clamp(22px,6vw,30px);color:var(--gold);margin:-4px 0 8px;letter-spacing:.04em;
  opacity:0;animation:wordIn .8s ease forwards 1.6s;text-shadow:0 2px 14px #000;
}
.wish-main{font-size:clamp(24px,6.8vw,36px)}
.msg{
  max-width:470px;margin:6px auto 14px;padding:12px 16px;border-radius:18px;font-size:clamp(15px,4.2vw,18px);line-height:1.6;
  background:rgba(10,4,32,.58);border:1px solid rgba(255,207,90,.3);backdrop-filter:blur(4px);color:rgba(255,244,220,.95);
  opacity:0;transform:translateY(14px);animation:wordIn .9s ease forwards 3.4s;
}
.actions{animation-delay:4.6s}
.act-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.act-grid[hidden]{display:none}
.btn.big{grid-column:1/-1;font-size:18px;padding:15px}
.back{
  background:none;border:0;color:rgba(255,244,220,.7);font:500 15px var(--font-body);padding:8px;cursor:pointer;
}
#waBtn{grid-column:1/-1}
.actions{display:block}

.msg{white-space:pre-line;font-size:clamp(15px,4.3vw,18.5px);line-height:1.7;padding:14px 18px;position:relative}
.msg::before{content:"❝";position:absolute;top:-6px;left:10px;font-size:34px;line-height:1;color:var(--gold);opacity:.8}
#nextMsgBtn{grid-column:1/-1}

/* ---------- फोटो एडजस्ट ---------- */
.crop-box{align-items:center;width:min(360px,100%)}
.crop-box h3{font-family:var(--font-head);font-weight:400;font-size:24px;color:var(--gold)}
#cropCv{width:min(300px,78vw);height:min(300px,78vw);border-radius:18px;touch-action:none;cursor:grab;background:#000;box-shadow:0 0 0 2px rgba(255,207,90,.5)}
#cropCv:active{cursor:grabbing}
.crop-hint{font-size:13px;color:rgba(255,244,220,.75);text-align:center}
#cropZoom{width:min(300px,78vw);accent-color:#ffcf5a}
.adj{
  margin-left:auto;flex:0 0 auto;padding:7px 10px;border-radius:10px;border:1px solid rgba(255,207,90,.5);
  background:rgba(255,207,90,.12);color:var(--gold);font:600 13px var(--font-body);cursor:pointer;
}
.adj[hidden]{display:none}

/* ---------- मोबाइल सुधार ---------- */
.wish-name{overflow-wrap:anywhere;line-height:1.1}
.msg span{display:block;text-wrap:balance}
.msg{white-space:normal}
.modal{overflow-y:auto;align-items:start}
.modal-box{margin:auto}
.modal-box img{max-height:calc(100dvh - 250px)}
.modal-actions .btn{padding:10px 12px;font-size:14px}
@media (max-width:380px){
  .card{padding:20px 16px 18px}
  .title{font-size:30px}
  .sub{font-size:14.5px;margin:8px 0 14px}
  .avatar{width:96px;height:96px;margin-bottom:8px}
  .wish-name{font-size:clamp(30px,10vw,44px)}
  .wish-main{font-size:21px;margin-bottom:4px}
  .msg{font-size:14.5px;padding:12px 14px;line-height:1.6}
  .btn{font-size:13.5px}
}
@media (max-height:700px){
  .diya-big{width:84px;height:58px;margin-bottom:0}
  .avatar{width:100px;height:100px}
  .wish-name{font-size:clamp(30px,9.5vw,50px)}
}
@media (max-height:500px){
  .ad{min-height:30px;margin:2px 8px}
  .diya-big{display:none}
  .screen{padding:8px}
}
