:root{--cream:#fff8ee;--peach:#f5d5c8;--rose:#d98f9b;--plum:#70495f;--sage:#73806d;--gold:#c69b55;--ink:#4a3a3f}
*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#2c2025;color:var(--ink);font-family:"Kalpurush",sans-serif}button,a,input,textarea{font:inherit}button,a{cursor:pointer}.serif,h1,.memory h3{font-family:"Cormorant Garamond","Kalpurush",serif}.page{width:min(100%,980px);height:100dvh;margin:auto;overflow-y:auto;overflow-x:hidden;scroll-snap-type:y mandatory;scroll-behavior:smooth;scrollbar-width:none;background:var(--cream);box-shadow:0 0 90px #10070a88}.page::-webkit-scrollbar{display:none}.page>section{height:100dvh;min-height:100dvh;scroll-snap-align:start;scroll-snap-stop:always;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:62px 28px 72px}.eyebrow{font:600 10px/1 Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--plum)}.title{font-family:"Kalpurush",sans-serif;font-size:clamp(30px,5vw,46px);line-height:1.15;margin:8px 0 12px}.copy{font-size:13px;line-height:1.72;color:#715e64}.petal{position:fixed;z-index:30;width:8px;height:12px;border-radius:70% 20% 70% 20%;background:#e3a5ab88;pointer-events:none;animation:fall linear infinite}.p1{left:8%;animation-duration:14s}.p2{left:27%;animation-duration:17s;animation-delay:-6s}.p3{left:51%;animation-duration:16s;animation-delay:-9s}.p4{left:73%;animation-duration:19s;animation-delay:-2s}.p5{left:91%;animation-duration:15s;animation-delay:-11s}@keyframes fall{from{transform:translateY(-10vh) rotate(0)}to{transform:translateY(112vh) rotate(520deg)}}
.top-controls{position:fixed;z-index:1300;top:10px;left:50%;transform:translateX(-50%);width:min(calc(100% - 20px),940px);display:flex;justify-content:space-between;opacity:0;pointer-events:none;transition:.35s}.started .top-controls{opacity:1}.top-controls a,.top-controls button{pointer-events:auto;border:1px solid #ffffff8c;background:#493942e8;color:#fff;border-radius:999px;min-height:40px;padding:0 13px;box-shadow:0 8px 24px #24141b42;backdrop-filter:blur(10px)}.top-controls .round{width:40px;padding:0;border-radius:50%}.scroll-button{position:fixed;z-index:1290;left:50%;bottom:20px;transform:translateX(-50%);width:46px;height:46px;border:1px solid #ffffff9c;border-radius:50%;background:#70495fea;color:#fff;font:500 24px/1 Arial,sans-serif;opacity:0;pointer-events:none;box-shadow:0 10px 25px #2c1d243d;transition:.3s}.started .scroll-button{opacity:1;pointer-events:auto}.scroll-button.at-end{transform:translateX(-50%) rotate(180deg)}.scene-nav{position:fixed;z-index:1295;right:max(12px,calc((100vw - 980px)/2 + 12px));top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:7px;align-items:center;opacity:0;pointer-events:none}.started .scene-nav{opacity:1;pointer-events:auto}.scene-nav button{width:40px;height:40px;border:1px solid #ffffff8c;border-radius:50%;background:#493942e8;color:#fff}.scene-nav button:disabled{opacity:.3}.scene-nav span{background:#fff7edd9;border-radius:999px;padding:6px 8px;font:600 9px/1 Arial,sans-serif;color:#614a55}
.opening{position:fixed;z-index:2500;inset:0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 20%,#9c7285,#5b3a4c 48%,#2a1821 100%);transition:opacity .8s,visibility .8s}.opening.hide{opacity:0;visibility:hidden;pointer-events:none}.opening-stage{position:relative;width:min(94vw,450px);height:min(82dvh,700px);border-radius:26px;overflow:hidden;box-shadow:0 28px 70px #13070c99;background:linear-gradient(#fff7ed,#f3decf)}.inner-birthday{position:absolute;inset:18px;border:1px solid #d1aa6a;border-radius:22px;background:radial-gradient(circle at 50% 35%,#fffdf7,#f8e7da);display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}.inner-birthday:before{content:"";position:absolute;inset:13px;border:1px solid #d6b67b66;border-radius:18px}.birthday-copy{position:relative;z-index:2;width:76%}.birthday-copy>*{opacity:0;transform:translateY(10px);transition:.7s ease}.opening.reveal-copy .birthday-copy>*{opacity:1;transform:none}.opening.reveal-copy .birthday-copy .mini{transition-delay:.1s}.opening.reveal-copy .birthday-copy h1{transition-delay:.28s}.opening.reveal-copy .birthday-copy p{transition-delay:.5s}.mini{font:600 11px/1 Arial,sans-serif;letter-spacing:.15em;color:#9c6f7e}.birthday-copy h1{font-size:clamp(48px,12vw,68px);line-height:.8;margin:12px 0;color:#664454}.birthday-copy p{font-size:15px;color:#7a6269;margin:0}.balloon{position:absolute;width:52px;height:66px;border-radius:50% 50% 47% 47%;opacity:.88;filter:drop-shadow(0 7px 9px #4d2c3b2b)}.balloon:after{content:"";position:absolute;left:50%;top:63px;width:1px;height:94px;background:#9a7a83}.b1{left:35px;top:68px;background:#e7a6ad}.b2{right:30px;top:118px;background:#c5b179}.b3{left:62px;bottom:90px;background:#9eaf99}.curtain{position:absolute;z-index:7;top:0;bottom:0;width:54%;background:linear-gradient(90deg,#9f596f,#d98b9c 22%,#8d4a62 45%,#c87589 70%,#7d3d55);box-shadow:inset -14px 0 25px #4a213044;transition:1.35s cubic-bezier(.18,.75,.2,1)}.curtain.left{left:0;border-radius:0 0 90% 0}.curtain.right{right:0;transform:scaleX(-1);border-radius:0 0 90% 0}.curtain:after{content:"";position:absolute;top:0;bottom:0;left:17%;width:12%;background:#fff2;box-shadow:110px 0 0 #4e233029,55px 0 0 #fff1}.valance{position:absolute;z-index:9;left:0;right:0;top:0;height:105px;background:linear-gradient(#7c3e56,#b6667d);clip-path:polygon(0 0,100% 0,100% 58%,90% 82%,80% 58%,70% 82%,60% 58%,50% 82%,40% 58%,30% 82%,20% 58%,10% 82%,0 58%);transition:1.1s ease}.tie{position:absolute;z-index:10;top:48%;width:70px;height:28px;background:linear-gradient(90deg,#b78648,#efd09a,#a97539);border-radius:999px;box-shadow:0 7px 15px #3c1f2861;transition:1s ease}.tie.left{left:7%}.tie.right{right:7%}.opening.opening-go .tie.left{transform:translate(-58px,20px) rotate(-16deg);opacity:.1}.opening.opening-go .tie.right{transform:translate(58px,20px) rotate(16deg);opacity:.1}.opening.curtains-open .curtain.left{transform:translateX(-94%)}.opening.curtains-open .curtain.right{transform:translateX(94%) scaleX(-1)}.opening.curtains-open .valance{transform:translateY(-58px);opacity:.72}.open-cta{position:absolute;z-index:12;left:50%;bottom:24px;transform:translateX(-50%);min-width:180px;height:46px;border:1px solid #e1c391;background:#553a48;color:#fff;border-radius:999px;box-shadow:0 12px 28px #2110176e;animation:pulse 2.2s ease-in-out infinite}.opening.opening-go .open-cta{opacity:0;animation:none}.opening-note{position:absolute;z-index:12;bottom:7px;left:50%;transform:translateX(-50%);font-size:10px;color:#8a6975;white-space:nowrap}@keyframes pulse{50%{transform:translateX(-50%) translateY(-2px);box-shadow:0 16px 34px #21101782,0 0 0 7px #f1d3d51c}}
.hero{background:linear-gradient(160deg,#fff8ef,#f3ddd3)}.hero-shell{width:min(100%,790px);text-align:center;position:relative}.hero-frame{margin:auto;width:min(100%,700px);padding:36px 32px 28px;border:1px solid #d4b475;border-radius:250px 250px 32px 32px;background:#fff9f0cc;box-shadow:0 24px 65px #6e445526}.hero-photo{width:min(330px,62vw);height:min(330px,38dvh);margin:18px auto;border-radius:50% 50% 45% 45%;overflow:hidden;border:1px solid #d4b475;box-shadow:0 18px 45px #623d4d24}.hero-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.85)}.hero h1{font-size:clamp(54px,9vw,92px);line-height:.82;margin:8px 0;color:#674555}.hero .bangla{font-size:18px;margin:6px 0 0;color:#73545f}.hero .date{font:600 11px/1 Arial,sans-serif;letter-spacing:.11em;color:#9a7782;margin-top:8px}.letter{background:linear-gradient(#f4ded4,#fff7ee)}.letter-wrap{width:min(780px,100%);text-align:center}.letter-cover{border:1px solid #cda86d;background:#fff9f1;border-radius:24px;padding:26px 30px;box-shadow:0 20px 55px #68455420}.letter-cover button{margin-top:14px;border:0;border-radius:999px;background:#70495f;color:#fff;padding:11px 18px}.letter-body{display:none;margin-top:12px;border:1px solid #d6b982;background:#fffaf4;border-radius:26px;padding:28px;line-height:1.9;color:#6b565c;box-shadow:0 20px 60px #5b3b4a1c}.letter-box.opened .letter-cover{display:none}.letter-box.opened .letter-body{display:block;animation:rise .7s ease}.letter-body h2{font-family:"Kalpurush",sans-serif;font-size:34px;margin:0 0 10px}.signature{font:500 32px "Cormorant Garamond","Kalpurush",serif;color:#a56f7e;margin-top:12px}@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.joys{background:linear-gradient(#fff7ee,#f2ded9)}.joy-grid{width:min(800px,100%);display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:24px}.joy-card{min-height:190px;border:1px solid #d6b982;border-radius:24px;background:#fff9f1;padding:20px 12px;text-align:center;display:flex;flex-direction:column;justify-content:center;transition:.28s}.joy-card:hover{transform:translateY(-4px);box-shadow:0 18px 35px #68455420}.joy-icon{font-size:30px}.joy-card h3{font-size:28px;margin:8px 0}.joy-card p{font-size:11px;line-height:1.55;color:#76616a}
.gallery{background:linear-gradient(#f2ded9,#fff7ee);text-align:center}.gallery-grid{width:min(790px,100%);display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:34dvh 24dvh;gap:10px;margin-top:18px}.gallery-item{border:0;padding:0;overflow:hidden;border-radius:22px;background:#fff}.gallery-item:first-child{grid-row:1/3}.gallery-item img{width:100%;height:100%;object-fit:cover;filter:saturate(.84);transition:.4s}.gallery-item:hover img{transform:scale(1.035)}
.memories{background:linear-gradient(#fff7ee,#f0d8d1);text-align:center}.timeline{width:min(780px,100%);display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px;position:relative}.timeline:before{content:"";position:absolute;left:12%;right:12%;top:35px;height:1px;background:#c69b55}.memory{position:relative}.memory-dot{position:relative;z-index:2;width:70px;height:70px;border-radius:50%;border:1px solid #d2ae6c;background:#fff9f1;margin:auto;display:grid;place-items:center;font-size:25px}.memory h3{font-size:27px;margin:10px 0 3px}.memory p{font-size:11px;color:#78636a;line-height:1.5}
.wishes{background:linear-gradient(#f0d8d1,#fff7ef);text-align:center}.wish-cloud{width:min(760px,100%);display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:22px auto}.wish-chip{border:1px solid #d2ae6c;background:#fff9f1;border-radius:999px;padding:10px 16px;font-size:12px;transition:.25s}.wish-chip:hover,.wish-chip.active{background:#70495f;color:#fff;transform:translateY(-2px)}.wish-result{min-height:42px;margin-top:12px;font-size:16px;color:#6c4c5b}
.respond{background:linear-gradient(#fff7ef,#f2ded5);text-align:center}.respond-shell{width:min(820px,100%);border:1px solid #d4b475;border-radius:38px;background:#fff9f2;padding:28px;box-shadow:0 22px 60px #5b3b4a1c}.response-options{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:18px}.response-card{position:relative;min-height:70px;border:1px solid #d9b87d;border-radius:18px;background:#fff;padding:10px 10px 10px 36px;text-align:left;font-size:11.5px;line-height:1.4;display:flex;align-items:center;cursor:pointer}.response-card input{position:absolute;opacity:0}.response-card .dot{position:absolute;left:10px;width:18px;height:18px;border-radius:50%;border:1px solid #c69b55}.response-card.active{border-color:#70495f;background:#fbf3f6}.response-card.active .dot{background:#70495f;box-shadow:inset 0 0 0 4px #fbf3f6}.response-panel{margin-top:10px}.response-panel[hidden]{display:none}.response-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:8px}.response-grid.three{grid-template-columns:.8fr .8fr 1.4fr}.response-grid label{display:flex;flex-direction:column;gap:4px;text-align:left;font-size:10px}.response-grid input,.response-grid textarea{width:100%;border:1px solid #d9b87d;border-radius:13px;background:#fff;padding:0 11px;height:38px;outline:none}.response-grid textarea{height:58px;padding-top:8px;resize:none}.response-submit{margin-top:10px;border:0;border-radius:999px;background:#70495f;color:#fff;padding:11px 20px}.response-success{min-height:18px;margin-top:6px;font-size:11px;color:#66765d}
.final{background:radial-gradient(circle at 50% 30%,#fffaf3,#efd6cf);text-align:center}.final-box{width:min(720px,100%);padding:44px 26px;border:1px solid #d4b475;border-radius:260px 260px 34px 34px;background:#fff9f1cc}.final h2{font-family:"Kalpurush",sans-serif;font-size:clamp(34px,6vw,54px);line-height:1.15;margin:8px auto 12px}.make-wish{border:0;border-radius:999px;background:#70495f;color:#fff;padding:12px 20px;margin-top:14px}.final-actions{display:flex;justify-content:center;gap:8px;margin-top:12px;flex-wrap:wrap}.final-actions button{border:1px solid #d4b475;background:#fffaf3;border-radius:999px;padding:9px 12px;font-size:10px}.wish-burst{min-height:24px;margin-top:8px;color:#865a6a}
.lightbox{position:fixed;z-index:3000;inset:0;background:#170d13eb;display:grid;place-items:center;opacity:0;visibility:hidden;transition:.3s}.lightbox.show{opacity:1;visibility:visible}.lightbox img{max-width:min(88vw,900px);max-height:82dvh;border-radius:22px}.lightbox button{position:absolute;width:44px;height:44px;border:1px solid #ffffff77;border-radius:50%;background:#493942;color:#fff;font-size:24px}.lightbox-close{right:16px;top:16px}.lightbox-prev{left:16px;top:50%}.lightbox-next{right:16px;top:50%}
.confetti{position:fixed;z-index:3100;top:-20px;width:8px;height:13px;pointer-events:none;animation:confettiFall 2.4s linear forwards}@keyframes confettiFall{to{transform:translate(var(--x),110vh) rotate(720deg);opacity:.8}}
@media(max-width:700px){.page>section{padding:54px 14px 66px}.scene-nav{right:7px;top:auto;bottom:68px;transform:none;flex-direction:row}.scene-nav button{width:36px;height:36px}.hero-frame{padding:25px 14px 20px}.hero h1{font-size:clamp(48px,16vw,66px)}.hero-photo{height:28dvh}.title{font-size:29px}.copy{font-size:12px}.joy-grid{grid-template-columns:repeat(2,1fr);gap:8px}.joy-card{min-height:120px;padding:12px 8px}.joy-card h3{font-size:22px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:34dvh 22dvh}.gallery-item:first-child{grid-column:1/3;grid-row:auto}.timeline{gap:4px}.memory-dot{width:58px;height:58px}.memory h3{font-size:20px}.response-options{grid-template-columns:1fr;gap:5px}.respond-shell{padding:18px 12px}.response-card{min-height:44px}.response-grid,.response-grid.three{grid-template-columns:1fr 1fr}.response-grid label:last-child:nth-child(odd){grid-column:1/3}.opening-stage{width:min(96vw,410px);height:min(76dvh,650px)}.birthday-copy h1{font-size:clamp(46px,16vw,62px)}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
.surprise-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:18px auto 12px;max-width:760px}
.surprise-tab{min-height:58px;border:1px solid #d9b87d;border-radius:18px;background:#fffaf4;color:#5d4852;padding:10px 12px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:11.5px;transition:.25s ease}
.surprise-tab span{width:24px;height:24px;border:1px solid #c69b55;border-radius:50%;display:grid;place-items:center;font:600 12px/1 Arial,sans-serif}
.surprise-tab:hover{transform:translateY(-2px);box-shadow:0 10px 22px #68455417}
.surprise-tab.active{background:#70495f;color:#fff;border-color:#70495f;box-shadow:0 10px 24px #70495f26}
.surprise-tab.active span{background:#fff2;color:#fff;border-color:#fff8}
.surprise-panel{max-width:720px;margin:0 auto;padding:22px 24px;border:1px solid #d7b67c;border-radius:24px;background:linear-gradient(180deg,#fffaf4,#fff7ef);box-shadow:0 18px 42px #68455416;animation:surpriseIn .5s ease}
.surprise-panel[hidden]{display:none!important}
.surprise-panel .surprise-icon{width:44px;height:44px;margin:0 auto 7px;border-radius:50%;border:1px solid #c69b55;display:grid;place-items:center;font-size:19px;color:#80566a;background:#fff}
.surprise-panel h3{font-family:"Kalpurush",sans-serif;font-size:24px;line-height:1.25;margin:4px 0 8px;color:#624953}
.surprise-panel p{max-width:620px;margin:0 auto;font-size:12.5px;line-height:1.75;color:#725e65}
.surprise-tag{display:inline-block;margin-top:10px;padding:7px 12px;border-radius:999px;background:#f2e4e7;color:#7a5665;font:600 9px/1 Arial,sans-serif;letter-spacing:.04em}
@keyframes surpriseIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@media(max-width:700px){.surprise-tabs{grid-template-columns:1fr;gap:5px;margin-top:12px}.surprise-tab{min-height:42px;font-size:10.5px}.surprise-panel{padding:18px 14px}.surprise-panel h3{font-size:20px}.surprise-panel p{font-size:11.5px;line-height:1.6}}
/* Hero alignment cleanup */
.hero-frame{width:min(100%,700px);max-height:88dvh;padding:26px 28px 22px!important}
.hero h1{font-size:clamp(46px,6.2vw,68px)!important;line-height:.9!important;max-width:92%;margin:6px auto 8px!important;letter-spacing:-.015em}
.hero h1 .hero-line{display:block}
.hero .bangla{font-size:16px!important;line-height:1.45;max-width:84%;margin:4px auto 0!important}
.hero .date{margin-top:7px!important}
.hero-photo{width:min(300px,58vw)!important;height:min(300px,34dvh)!important;margin:14px auto!important}
#heroScrollBtn{margin-top:9px!important}
.scroll-button{bottom:12px!important}
body.hero-page .scroll-button{opacity:0!important;pointer-events:none!important}

@media(max-width:700px){
  .hero-frame{padding:22px 12px 18px!important}
  .hero h1{font-size:clamp(40px,12.5vw,52px)!important;line-height:.92!important;max-width:94%}
  .hero .bangla{font-size:14px!important;max-width:94%}
  .hero-photo{width:min(270px,68vw)!important;height:min(270px,29dvh)!important;margin:12px auto!important}
  #heroScrollBtn{margin-top:8px!important}
}
/* Opening typography breathing room */
.birthday-copy{width:82%!important;padding:18px 0 14px!important}
.birthday-copy .mini{margin-bottom:20px!important}
.birthday-greeting{font-family:"Cormorant Garamond","Kalpurush",serif;font-size:clamp(34px,8vw,46px);line-height:1.04;color:#765164;margin:0 0 14px;font-weight:500}
.birthday-name{font-family:"Cormorant Garamond","Kalpurush",serif!important;font-size:clamp(58px,13vw,78px)!important;line-height:.9!important;margin:0 auto 16px!important;color:#5e3e50!important;font-weight:600!important;letter-spacing:-.025em;text-shadow:0 2px 0 #fff8}
.birthday-divider{display:block;width:58px;height:1px;margin:0 auto 16px;background:linear-gradient(90deg,transparent,#c69b55,transparent)}
.birthday-copy p{font-family:"Kalpurush",sans-serif!important;font-size:15px!important;line-height:1.55!important;margin:0!important}
.opening.reveal-copy .birthday-copy .mini{transition-delay:.08s}
.opening.reveal-copy .birthday-copy .birthday-greeting{transition-delay:.26s}
.opening.reveal-copy .birthday-copy .birthday-name{transition-delay:.46s}
.opening.reveal-copy .birthday-copy .birthday-divider{transition-delay:.62s}
.opening.reveal-copy .birthday-copy p{transition-delay:.76s}
@media(max-width:700px){
  .birthday-copy{width:84%!important;padding:14px 0!important}
  .birthday-copy .mini{margin-bottom:16px!important}
  .birthday-greeting{font-size:clamp(30px,9vw,38px);margin-bottom:11px}
  .birthday-name{font-size:clamp(52px,15vw,66px)!important;margin-bottom:14px!important}
  .birthday-divider{margin-bottom:13px}
  .birthday-copy p{font-size:14px!important}
}
/* Full birthday demo visual audit */
.hero-frame{padding:30px 28px 24px!important}
.hero-greeting{font-family:"Cormorant Garamond","Kalpurush",serif;font-size:clamp(34px,4.2vw,46px);line-height:1;color:#765164;margin:8px 0 5px;font-weight:500;letter-spacing:.01em}
.hero-name{font-family:"Cormorant Garamond","Kalpurush",serif!important;font-size:clamp(58px,7.4vw,80px)!important;line-height:.88!important;color:#5f3f51!important;margin:0 auto 13px!important;font-weight:600!important;letter-spacing:-.025em;max-width:88%;overflow-wrap:anywhere}
.hero .bangla{font-family:"Kalpurush",sans-serif!important;max-width:76%!important;line-height:1.55!important;margin:0 auto!important}
.hero .date{margin-top:7px!important}
.hero-photo{width:min(280px,54vw)!important;height:min(280px,31dvh)!important;margin:13px auto 11px!important}
#heroScrollBtn{margin-top:7px!important}

.letter-wrap,.joys>div,.gallery>div,.memories>div,.wishes>div{max-height:84dvh}
.letter-cover{min-height:min(32dvh,245px);display:grid;place-content:center}
.letter-body{max-width:720px;margin:12px auto 0!important;padding:24px 28px!important;font-size:12.5px;line-height:1.76!important}
.letter-body h2{font-size:30px!important;line-height:1.2;margin-bottom:8px!important}
.signature{font-size:27px!important;margin-top:9px!important}

.title{font-size:clamp(28px,4vw,40px)!important;line-height:1.2!important;margin:7px 0 10px!important}
.joy-grid{margin-top:18px!important;gap:9px!important}
.joy-card{min-height:168px!important;padding:17px 12px!important}
.joy-card h3{font-family:"Kalpurush",sans-serif!important;font-size:24px!important;line-height:1.15!important;margin:7px 0 5px!important}
.joy-card p{font-family:"Kalpurush",sans-serif!important;font-size:11.5px!important;line-height:1.6!important}
.joy-icon{font-size:26px!important}

.gallery-grid{grid-template-rows:30dvh 20dvh!important;margin-top:14px!important}
.gallery-item{position:relative}
.gallery-item span{position:absolute;left:10px;bottom:10px;padding:6px 10px;border-radius:999px;background:#2b1b21ad;color:#fff;font-family:"Kalpurush",sans-serif;font-size:10.5px;line-height:1;backdrop-filter:blur(6px)}
.gallery-item img{filter:saturate(.8) contrast(.98)!important}

.memories .copy{max-width:620px;margin:0 auto}
.timeline{margin-top:18px!important;gap:10px!important}
.memory-dot{width:64px!important;height:64px!important;font-size:22px!important}
.memory h3{font-size:24px!important;margin:8px 0 3px!important}
.memory p{font-family:"Kalpurush",sans-serif!important;font-size:11.5px!important;line-height:1.55!important;padding:0 6px}

.wish-cloud{margin:17px auto!important;gap:8px!important}
.wish-chip{font-family:"Kalpurush",sans-serif!important;padding:9px 15px!important;font-size:11.5px!important}
.wish-result{font-family:"Kalpurush",sans-serif!important;min-height:34px!important;margin-top:8px!important;font-size:14px!important}

.respond-shell{max-height:84dvh;padding:24px!important}
.respond-shell>.copy{max-width:620px;margin:0 auto}
.surprise-tabs{margin:14px auto 10px!important}
.surprise-tab{font-family:"Kalpurush",sans-serif!important;min-height:52px!important}
.surprise-panel{padding:19px 22px!important}
.surprise-panel h3{font-size:22px!important;margin-bottom:6px!important}
.surprise-panel p{font-size:12px!important;line-height:1.65!important}

.final-box{max-height:84dvh;padding:36px 24px!important}
.final h2{font-size:clamp(30px,4.6vw,44px)!important;line-height:1.2!important;margin:7px auto 9px!important}
.final .copy{max-width:560px;margin:0 auto}

@media(max-width:700px){
  .hero-frame{padding:23px 12px 18px!important}
  .hero-greeting{font-size:clamp(29px,8vw,36px);margin-top:5px}
  .hero-name{font-size:clamp(50px,14vw,64px)!important;max-width:94%;margin-bottom:10px!important}
  .hero .bangla{max-width:94%!important;font-size:13.5px!important}
  .hero-photo{width:min(245px,66vw)!important;height:min(245px,27dvh)!important;margin:10px auto 8px!important}
  .letter-cover{min-height:25dvh;padding:18px!important}
  .letter-body{padding:18px 16px!important;font-size:11.5px!important;line-height:1.62!important}
  .letter-body h2{font-size:25px!important}
  .title{font-size:27px!important;margin-bottom:8px!important}
  .joy-grid{margin-top:12px!important}
  .joy-card{min-height:112px!important;padding:10px 7px!important}
  .joy-card h3{font-size:20px!important}
  .joy-card p{font-size:10px!important;line-height:1.45!important}
  .gallery-grid{grid-template-rows:31dvh 19dvh!important;gap:7px!important}
  .gallery-item span{left:7px;bottom:7px;font-size:9.5px;padding:5px 8px}
  .timeline{margin-top:13px!important}
  .memory-dot{width:54px!important;height:54px!important}
  .memory h3{font-size:18px!important}
  .memory p{font-size:10px!important;line-height:1.4!important}
  .wish-cloud{margin:13px auto!important}
  .wish-chip{font-size:10.5px!important;padding:8px 12px!important}
  .respond-shell{padding:18px 12px!important}
  .surprise-tabs{margin-top:10px!important}
  .surprise-panel{padding:16px 12px!important}
  .final-box{padding:28px 16px!important}
}
/* Final page headline guard */
.final h2{max-width:76%!important;font-size:clamp(28px,3.9vw,38px)!important;line-height:1.24!important;margin-left:auto!important;margin-right:auto!important}
@media(max-width:700px){.final h2{max-width:92%!important;font-size:28px!important}}


/* Wooow-style birthday wish motion layer */
.scroll-button{display:none!important}
.page>section{padding-bottom:108px}
.wish-scene{isolation:isolate}
.wish-scene>:not(.wish-ambient):not(.section-mouse-next){position:relative;z-index:2}
.wish-ambient{
  position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;
}
.section-mouse-next{
  position:absolute;z-index:18;left:50%;bottom:20px;transform:translateX(-50%);
  width:74px;min-height:78px;border:0;background:transparent;color:#765a66;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  opacity:.9;transition:transform .2s ease,opacity .2s ease;
}
.section-mouse-next:hover{transform:translateX(-50%) translateY(-3px);opacity:1}
.mouse-shell{
  width:34px;height:52px;border:2px solid currentColor;border-radius:18px;
  display:block;position:relative;background:#fffaf2d9;
  box-shadow:0 7px 20px #5f3f4f20,inset 0 0 0 2px #ffffffaa;
}
.mouse-shell:before{
  content:"";position:absolute;left:50%;top:8px;transform:translateX(-50%);
  width:3px;height:11px;border-radius:3px;background:currentColor;opacity:.25
}
.mouse-shell i{
  position:absolute;left:50%;top:10px;transform:translateX(-50%);
  width:5px;height:10px;border-radius:4px;background:currentColor;
  animation:wishMouseWheel 1.35s ease-in-out infinite;
}
.section-mouse-next small{
  font:700 8px/1 Arial,sans-serif;letter-spacing:.18em;color:currentColor;margin-top:2px
}
.section-mouse-next>b{
  font:600 14px/1 Arial,sans-serif;color:currentColor;
  animation:wishMouseArrow 1.35s ease-in-out infinite
}
@keyframes wishMouseWheel{0%{opacity:0;transform:translate(-50%,-1px)}30%{opacity:1}100%{opacity:0;transform:translate(-50%,13px)}}
@keyframes wishMouseArrow{50%{transform:translateY(4px)}}

/* subtle reveal, without changing the approved layout */
.wish-reveal{opacity:0;transform:translateY(14px) scale(.988);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1)}
.wish-reveal.in{opacity:1;transform:none}
.joy-card.wish-reveal:nth-child(2),.gallery-item.wish-reveal:nth-child(2),.memory.wish-reveal:nth-child(2){transition-delay:.08s}
.joy-card.wish-reveal:nth-child(3),.gallery-item.wish-reveal:nth-child(3),.memory.wish-reveal:nth-child(3){transition-delay:.16s}
.joy-card.wish-reveal:nth-child(4){transition-delay:.24s}
.hero-photo img{animation:wishHeroBreath 9s ease-in-out infinite alternate}
@keyframes wishHeroBreath{from{transform:scale(1.01)}to{transform:scale(1.055)}}

/* opening: balloons keep the curtain scene alive before the reveal */
.inner-birthday .balloon{transform-origin:50% 115%;animation:wishBalloonSway 4.8s ease-in-out infinite}
.inner-birthday .b2{animation-delay:-1.6s}.inner-birthday .b3{animation-delay:-3s}
@keyframes wishBalloonSway{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(4deg) translateY(-10px)}}
.inner-birthday:after{
  content:"";position:absolute;inset:-20%;pointer-events:none;
  background:radial-gradient(circle at 25% 30%,#fff9 0 1px,transparent 2px),
             radial-gradient(circle at 70% 18%,#d2aa6b99 0 1px,transparent 2px),
             radial-gradient(circle at 78% 72%,#fff8 0 1px,transparent 2px),
             radial-gradient(circle at 18% 78%,#d2aa6b77 0 1px,transparent 2px);
  background-size:110px 110px,140px 140px,125px 125px,155px 155px;
  opacity:.45;animation:wishOpeningSparkle 9s linear infinite
}
@keyframes wishOpeningSparkle{to{transform:translate3d(28px,18px,0)}}

/* page 1: soft celebratory sparkles */
.ambient-hero i{
  position:absolute;top:-10%;width:7px;height:18px;border-radius:4px;background:#d7a8ae;
  opacity:.24;animation:wishConfettiDrift 7.5s linear infinite
}
.ambient-hero i:nth-child(2n){background:#c5b179}.ambient-hero i:nth-child(3n){background:#9eaf99}
.ambient-hero i:nth-child(1){left:7%;animation-delay:-1s}.ambient-hero i:nth-child(2){left:18%;animation-delay:-4s}
.ambient-hero i:nth-child(3){left:31%;animation-delay:-2s}.ambient-hero i:nth-child(4){left:45%;animation-delay:-6s}
.ambient-hero i:nth-child(5){left:58%;animation-delay:-3s}.ambient-hero i:nth-child(6){left:69%;animation-delay:-5s}
.ambient-hero i:nth-child(7){left:82%;animation-delay:-2.4s}.ambient-hero i:nth-child(8){left:91%;animation-delay:-6.6s}
@keyframes wishConfettiDrift{0%{transform:translateY(-10vh) rotate(0);opacity:0}15%{opacity:.28}100%{transform:translateY(112vh) rotate(560deg);opacity:0}}

/* page 2: floating letter */
.ambient-letter .ambient-envelope{
  position:absolute;right:6%;top:15%;width:118px;height:78px;border:2px solid #a77a8870;border-radius:8px;
  opacity:.23;animation:wishEnvelopeFloat 5.6s ease-in-out infinite
}
.ambient-letter .ambient-envelope:before,.ambient-letter .ambient-envelope:after{
  content:"";position:absolute;top:0;width:72%;height:2px;background:#a77a8870;transform-origin:top
}
.ambient-letter .ambient-envelope:before{left:0;transform:rotate(33deg)}.ambient-letter .ambient-envelope:after{right:0;transform:rotate(-33deg)}
.ambient-letter b{position:absolute;right:10%;top:24%;font:500 44px/1 "Cormorant Garamond","Kalpurush";color:#a76f7f;opacity:.22;animation:wishHeartBreathe 3.6s ease-in-out infinite}
.ambient-letter i{position:absolute;left:8%;bottom:14%;font-style:normal;font-size:52px;color:#c69b55;opacity:.15;animation:wishTwinkle 4s ease-in-out infinite}
@keyframes wishEnvelopeFloat{50%{transform:translateY(-14px) rotate(2deg)}}@keyframes wishHeartBreathe{50%{transform:scale(1.14);opacity:.34}}

/* page 3: sun + tiny wishes */
.ambient-joy .ambient-sun{
  position:absolute;left:5%;top:12%;width:92px;height:92px;border:1px solid #d3ab6570;border-radius:50%;
  box-shadow:0 0 0 14px #d3ab650d,0 0 0 28px #d3ab6508;opacity:.34;animation:wishSunFloat 6s ease-in-out infinite
}
.ambient-joy b{position:absolute;font:500 48px/1 "Cormorant Garamond","Kalpurush";color:#9a7380;opacity:.15;animation:wishTwinkle 4.5s ease-in-out infinite}
.ambient-joy .s1{right:8%;top:14%}.ambient-joy .s2{right:15%;bottom:16%;animation-delay:-2s}.ambient-joy .s3{left:12%;bottom:12%;animation-delay:-3s}
@keyframes wishSunFloat{50%{transform:translateY(-10px) rotate(8deg)}}@keyframes wishTwinkle{0%,100%{transform:scale(.75);opacity:.1}50%{transform:scale(1.18);opacity:.28}}

/* page 4: floating memory frames */
.ambient-gallery i{
  position:absolute;width:100px;height:132px;border:3px solid #8f6b7850;border-radius:9px;opacity:.28;
  box-shadow:0 12px 26px #68455417;animation:wishFrameFloat 5.8s ease-in-out infinite
}
.ambient-gallery .f1{left:-24px;top:12%;transform:rotate(-8deg)}.ambient-gallery .f2{right:-26px;bottom:12%;transform:rotate(8deg);animation-delay:-2.3s}
.ambient-gallery .f3{right:6%;top:8%;width:64px;height:84px;transform:rotate(5deg);animation-delay:-4.1s}
@keyframes wishFrameFloat{50%{translate:0 -12px}}

/* page 5: botanical branch */
.ambient-memory{transform-origin:right bottom;animation:wishBranchSway 6s ease-in-out infinite}
.ambient-memory .stem{position:absolute;right:6%;bottom:-3%;width:2px;height:54%;background:#7e927a45;transform:rotate(-17deg);transform-origin:bottom}
.ambient-memory i{position:absolute;width:34px;height:16px;border-radius:100% 0 100% 0;background:#7e927a50}
.ambient-memory .l1{right:11%;bottom:15%;transform:rotate(-25deg)}.ambient-memory .l2{right:3%;bottom:24%;transform:rotate(42deg)}
.ambient-memory .l3{right:14%;bottom:33%;transform:rotate(-34deg)}.ambient-memory .l4{right:4%;bottom:43%;transform:rotate(40deg)}
.ambient-memory .l5{right:10%;bottom:51%;transform:rotate(-20deg)}
@keyframes wishBranchSway{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(2.5deg)}}

/* page 6: orbiting wishes */
.ambient-wishes i{
  position:absolute;width:11px;height:11px;opacity:.2;
  background:linear-gradient(45deg,transparent 42%,#b98375 43% 57%,transparent 58%),
             linear-gradient(-45deg,transparent 42%,#b98375 43% 57%,transparent 58%);
  animation:wishOrbit 4.4s ease-in-out infinite
}
.ambient-wishes i:nth-child(1){left:8%;top:18%}.ambient-wishes i:nth-child(2){left:17%;bottom:16%;animation-delay:-1s}
.ambient-wishes i:nth-child(3){right:9%;top:20%;animation-delay:-2s}.ambient-wishes i:nth-child(4){right:16%;bottom:16%;animation-delay:-3s}
.ambient-wishes i:nth-child(5){left:48%;top:8%;animation-delay:-1.8s}.ambient-wishes i:nth-child(6){left:58%;bottom:9%;animation-delay:-3.4s}
@keyframes wishOrbit{0%,100%{transform:scale(.7) rotate(0)}50%{transform:scale(1.3) rotate(90deg);opacity:.34}}

/* page 7: gift */
.ambient-gift .ambient-gift-box{
  position:absolute;right:5%;bottom:10%;width:128px;height:96px;border:2px solid #a9825f55;border-radius:8px;
  opacity:.34;animation:wishGiftFloat 5s ease-in-out infinite
}
.ambient-gift .ambient-gift-box:before{content:"";position:absolute;left:45%;top:0;width:11%;height:100%;background:#a9825f28}
.ambient-gift .ambient-gift-box:after{content:"";position:absolute;left:0;top:42%;width:100%;height:12%;background:#a9825f24}
.ambient-gift .ambient-gift-box i:before,.ambient-gift .ambient-gift-box i:after{
  content:"";position:absolute;top:-29px;width:54px;height:35px;border:2px solid #a9825f55;border-radius:50% 50% 10px 50%
}
.ambient-gift .ambient-gift-box i:before{left:14px;transform:rotate(22deg)}.ambient-gift .ambient-gift-box i:after{right:14px;transform:scaleX(-1) rotate(22deg)}
.ambient-gift>b{position:absolute;left:7%;top:15%;font:500 64px/1 "Cormorant Garamond","Kalpurush";color:#a56f7e;opacity:.13;animation:wishHeartBreathe 4.2s ease-in-out infinite}
@keyframes wishGiftFloat{50%{transform:translateY(-12px) rotate(1.5deg)}}

/* page 8: very light celebration particles */
.ambient-final i{
  position:absolute;width:8px;height:15px;border-radius:4px;background:#c69b55;opacity:.18;
  animation:wishFinalDrift 8s linear infinite
}
.ambient-final i:nth-child(1){left:9%;top:-10%;animation-delay:-1s}.ambient-final i:nth-child(2){left:25%;top:-8%;background:#d5a1aa;animation-delay:-5s}
.ambient-final i:nth-child(3){left:43%;top:-12%;background:#91a38d;animation-delay:-3s}.ambient-final i:nth-child(4){left:62%;top:-9%;animation-delay:-7s}
.ambient-final i:nth-child(5){left:79%;top:-11%;background:#d5a1aa;animation-delay:-2s}.ambient-final i:nth-child(6){left:91%;top:-7%;background:#91a38d;animation-delay:-6s}
@keyframes wishFinalDrift{to{transform:translateY(115vh) rotate(620deg)}}

@media(max-width:700px){
  .page>section{padding-bottom:104px}
  .section-mouse-next{bottom:18px;transform:translateX(-50%) scale(.92)}
  .scene-nav{bottom:68px}
  .ambient-letter .ambient-envelope{right:-24px;width:92px;height:62px}
  .ambient-gallery i{opacity:.18}
  .ambient-memory{opacity:.65}
  .ambient-gift .ambient-gift-box{right:-18px;width:104px;height:78px}
}
@media(prefers-reduced-motion:reduce){
  .wish-ambient *,.section-mouse-next *,.hero-photo img,.inner-birthday .balloon,.inner-birthday:after{animation:none!important}
  .wish-reveal{opacity:1!important;transform:none!important}
}
