:root{color-scheme:light only}body{font-family:Sarabun,Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;background:#050913;color:#1f2d3d}.scene{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;position:relative;isolation:isolate}.scene:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;background:linear-gradient(120deg,#050913bf,#08122073),url(/20251030_125513.jpg) center / cover no-repeat;filter:saturate(1.1)}.background-decor{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.background-decor span{position:absolute;font-size:clamp(2.5rem,5vw,4.5rem);opacity:.12;animation:float 12s ease-in-out infinite}.background-decor span:nth-child(1){top:12%;left:15%}.background-decor span:nth-child(2){top:65%;right:8%;animation-delay:2s}.background-decor span:nth-child(3){bottom:8%;left:30%;animation-delay:4s}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.card{position:relative;z-index:1;width:min(640px,100%);background:#ffffff80;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:32px;padding:clamp(1.75rem,5vw,3rem);box-shadow:0 20px 40px #2c3e501a;border:1px solid rgba(255,255,255,.4);opacity:0;transform:translateY(12px) scale(.98);transition:opacity .4s ease,transform .4s ease}.card-visible{opacity:1;transform:translateY(0) scale(1)}.tag{display:inline-flex;align-items:center;gap:.4rem;text-transform:uppercase;font-size:.76rem;letter-spacing:.15em;font-weight:500;color:#8732e9;background:#a86deb1f;padding:.4rem .9rem;border-radius:999px}h1{font-family:Pridi,Times New Roman,serif;font-size:clamp(2.5rem,5vw,3.8rem);margin-top:1.2rem;margin-bottom:.6rem;color:#2f1c38;line-height:1.1}h1 span{color:#ff7aa8}.message{margin-top:1rem;font-size:1rem;line-height:1.7;color:#3f3d56}.signature{margin-top:2.2rem;font-size:1rem;color:#8732e9;font-weight:500}.signature:before{content:"";display:inline-block;width:48px;height:1px;background:currentColor;margin-right:.75rem;vertical-align:middle}.sparkles{display:flex;gap:.6rem;margin-top:1.6rem;color:#8732e9;font-size:1.2rem}.gift-box{position:relative;border:none;cursor:pointer;width:clamp(240px,40vw,320px);height:clamp(240px,40vw,320px);border-radius:36px;background:linear-gradient(135deg,#ffaec8e6,#a482ffe6);color:#fff;box-shadow:0 25px 40px #0f0f1e59;overflow:visible;display:flex;align-items:center;justify-content:center;padding:2rem;text-align:center;font-size:1.2rem;font-weight:600;font-family:Pridi,Times New Roman,serif;transition:transform .3s ease,box-shadow .3s ease;animation:bounce 2.5s ease-in-out infinite}.gift-box:hover,.gift-box:focus-visible{transform:translateY(-6px) scale(1.02);box-shadow:0 35px 50px #0f0f1e73;outline:none}.gift-lid{position:absolute;top:0%;left:50%;transform:translate(-50%);width:100%;height:12%;border-radius:40px 40px 28px 28px;background:linear-gradient(135deg,#fff,#f6baff);border:1px solid rgba(255,255,255,.55);box-shadow:0 20px 32px #0603125c,inset 0 4px 8px #ffffffbf,inset 0 -8px 16px #7b488738}.gift-text{position:relative;z-index:1}.gift-ribbon{position:absolute;background:#ffffff73}.gift-ribbon-vertical{width:12px;height:100%;left:50%;top:0;transform:translate(-50%)}.gift-ribbon-horizontal{height:12px;width:100%;left:0;top:50%;transform:translateY(-50%)}.gift-opening{animation:giftPop .9s forwards;pointer-events:none}.gift-opening .gift-lid{animation:lidLift .9s forwards}.gift-opening .gift-bow{animation:bowFly .9s forwards}.gift-bow{position:absolute;top:-18%;width:120px;height:60px;pointer-events:none;display:flex;align-items:center;justify-content:center;animation:flutter 3s ease-in-out infinite}.gift-bow:before,.gift-bow:after{content:"";position:absolute;top:0;width:54px;height:100%;border-radius:50% 50% 40% 40%/70% 70% 30% 30%;background:linear-gradient(135deg,#ffffffeb,#d89bff73);border:1px solid rgba(255,255,255,.55);box-shadow:inset 0 -6px 10px #6c4a8f59,inset 0 4px 6px #ffffffbf,0 8px 10px #0c051940}.gift-bow:before{left:0;transform:rotate(-8deg);transform-origin:100% 50%}.gift-bow:after{right:0;transform:rotate(8deg);transform-origin:0% 50%}.gift-bow-knot{width:28px;height:36px;border-radius:999px;background:linear-gradient(135deg,#ffffffd9,#d296ff8c);border:1px solid rgba(255,255,255,.5);box-shadow:inset 0 -4px 6px #78469659,inset 0 4px 6px #ffffffbf}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes flutter{0%,to{transform:scale(1) rotate(0)}50%{transform:scale(1.06) rotate(3deg)}}@keyframes giftPop{0%{transform:translateY(0) scale(1);opacity:1}40%{transform:translateY(-10px) scale(1.02)}to{transform:translateY(40px) scale(.85);opacity:0}}@keyframes lidLift{0%{transform:translate(-50%)}60%{transform:translate(-50%,-80px) rotate(-8deg);opacity:1}to{transform:translate(-20%,-140px) rotate(-12deg);opacity:0}}@keyframes bowFly{0%{transform:translate(-50%) scale(1);opacity:1}60%{transform:translate(-50%,-20px) scale(1.05)}to{transform:translate(-50%,-140px) scale(.8);opacity:0}}@media (max-width: 480px){.scene{padding:1rem}.card{border-radius:24px;padding:1.6rem}}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh}
