:root{--pink:#ff6f9f;--pink2:#ffb6ce;--peach:#ffd1bd;--mint:#9de4c3;--cream:#fffaf4;--ink:#57394b;--soft:#8d6a7d;--purple:#b99ae8}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{font-family:"Avenir Next","Segoe UI",Arial,sans-serif;color:var(--ink);background:radial-gradient(circle at 18% 12%,#fff 0 3%,transparent 20%),radial-gradient(circle at 85% 20%,#ffe5f0 0 4%,transparent 25%),linear-gradient(145deg,#fff8e9,#ffeaf3 52%,#e9f9f2);overflow-x:hidden}.sky{position:fixed;inset:0;pointer-events:none;overflow:hidden}.sky:before,.sky:after{content:'';position:absolute;border-radius:50%;filter:blur(1px)}.sky:before{width:420px;height:420px;background:rgba(255,184,208,.2);right:-150px;bottom:-100px}.sky:after{width:300px;height:300px;background:rgba(157,228,195,.18);left:-100px;top:-80px}.sky i{position:absolute;width:7px;height:7px;background:#fff;border-radius:50%;box-shadow:0 0 18px 4px rgba(255,255,255,.8);animation:twinkle 2.8s ease-in-out infinite}.sky i:nth-child(1){left:8%;top:18%}.sky i:nth-child(2){left:25%;top:8%;animation-delay:.5s}.sky i:nth-child(3){left:67%;top:12%;animation-delay:1.2s}.sky i:nth-child(4){left:92%;top:38%;animation-delay:.7s}.sky i:nth-child(5){left:13%;top:78%;animation-delay:1.8s}.sky i:nth-child(6){left:73%;top:87%;animation-delay:.3s}.sky i:nth-child(7){left:42%;top:90%;animation-delay:1.5s}.sky i:nth-child(8){left:52%;top:5%;animation-delay:2s}@keyframes twinkle{50%{transform:scale(2);opacity:.35}}.scene{position:relative;z-index:2;width:min(1120px,calc(100% - 32px));min-height:100svh;margin:auto;display:grid;align-content:center;padding:70px 0 30px}.card{position:relative;display:grid;grid-template-columns:.92fr 1.08fr;align-items:center;min-height:650px;background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.9);border-radius:42px;box-shadow:0 30px 90px rgba(129,73,103,.18),inset 0 1px #fff;backdrop-filter:blur(18px);overflow:hidden}.card:before{content:'';position:absolute;inset:18px;border:1px dashed rgba(255,111,159,.22);border-radius:29px;pointer-events:none}.age-badge{position:absolute;z-index:5;top:28px;left:34px;width:78px;height:78px;border-radius:50%;background:#fff;display:grid;place-content:center;text-align:center;transform:rotate(-8deg);box-shadow:0 9px 30px rgba(255,111,159,.2)}.age-badge span{font:800 30px/1 Georgia,serif;color:var(--pink)}.age-badge small{font-size:7px;text-transform:uppercase;letter-spacing:.08em;color:var(--soft)}.dino-wrap{position:relative;height:580px;display:flex;align-items:flex-end;justify-content:center;padding-left:25px}.dino{position:relative;z-index:2;width:min(470px,105%);height:auto;max-height:565px;object-fit:contain;transform-origin:center bottom;animation:dinoHello 1s cubic-bezier(.2,.8,.2,1),dinoFloat 3.8s ease-in-out 1s infinite;filter:drop-shadow(0 22px 24px rgba(84,139,115,.2))}.dino-glow{position:absolute;width:380px;height:380px;bottom:40px;border-radius:50%;background:radial-gradient(circle,#fff 0%,rgba(157,228,195,.25) 45%,transparent 70%)}@keyframes dinoHello{0%{transform:translateY(80px) rotate(-8deg);opacity:0}70%{transform:translateY(-10px) rotate(3deg)}100%{transform:none;opacity:1}}@keyframes dinoFloat{50%{transform:translateY(-8px) rotate(1deg)}}.dino.celebrate{animation:dinoDance .55s ease-in-out infinite alternate}@keyframes dinoDance{to{transform:translateY(-18px) rotate(5deg) scale(1.03)}}.dino-heart{position:absolute;z-index:4;color:var(--pink);font-size:25px;opacity:0;animation:heartUp 2.4s ease-in infinite}.dino-heart.h1{left:25%;top:25%}.dino-heart.h2{right:12%;top:19%;animation-delay:.8s;font-size:18px}.dino-heart.h3{right:23%;top:7%;animation-delay:1.6s}@keyframes heartUp{0%{transform:translateY(25px) scale(.5) rotate(-10deg);opacity:0}25%{opacity:.8}100%{transform:translateY(-45px) scale(1.2) rotate(12deg);opacity:0}}.dialog{position:relative;z-index:3;padding:70px 65px 60px 30px}.kicker{text-transform:uppercase;letter-spacing:.16em;font-size:10px;font-weight:800;color:var(--pink);margin:0 0 15px}.speech{position:relative;background:#fff;border-radius:28px;padding:32px 34px;min-height:240px;box-shadow:0 16px 42px rgba(104,62,85,.1);transition:transform .25s,opacity .25s}.speech.switching{transform:translateY(8px);opacity:0}.tail{position:absolute;left:-18px;bottom:44px;width:38px;height:38px;background:#fff;clip-path:polygon(100% 0,100% 100%,0 70%)}h1{font:800 clamp(30px,4.2vw,48px)/1.05 Georgia,serif;letter-spacing:-.035em;color:#4d3442;margin:0 0 20px}.message{font-size:16px;line-height:1.7;color:var(--soft)}.message p{margin:0 0 12px}.message strong{color:var(--pink);font-weight:800}.message .spanish{font-family:Georgia,serif;font-style:italic;color:#b65078;font-size:18px}.message .korean{display:inline-block;font-size:22px;color:#5a9d80;font-weight:800;margin:4px 0}.progress{height:5px;border-radius:9px;background:rgba(87,57,75,.08);margin:25px 8px 18px;overflow:hidden}.progress span{display:block;width:14%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--pink),var(--purple));transition:width .45s}.choices{position:relative;display:flex;gap:12px;align-items:center;min-height:62px;padding:0 4px}.choice{border:0;border-radius:99px;padding:14px 22px;font:800 13px inherit;cursor:pointer;transition:transform .2s,box-shadow .2s;white-space:nowrap}.choice.yes{background:linear-gradient(135deg,var(--pink),#ed76cb);color:#fff;box-shadow:0 10px 25px rgba(255,111,159,.3)}.choice.yes:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 15px 30px rgba(255,111,159,.38)}.choice.nope{position:relative;background:#fff;color:#aa8598;border:1px solid #f1dce6;transition:left .18s,top .18s,transform .18s}.choice.nope.escape{position:fixed;z-index:20}.tease{min-height:20px;font-size:11px;color:#ad8b9c;margin:6px 8px 0}.sound{position:fixed;z-index:30;top:22px;right:24px;border:1px solid rgba(255,255,255,.9);background:rgba(255,255,255,.62);backdrop-filter:blur(12px);color:var(--soft);border-radius:99px;padding:9px 14px;display:flex;gap:8px;align-items:center;cursor:pointer;box-shadow:0 7px 22px rgba(105,68,89,.08)}.sound span{color:var(--pink);font-size:16px}.sound b{font-size:10px}.sound[aria-pressed=true]{background:#fff4f8;color:var(--pink)}.signature{text-align:center;color:#a78194;font-size:11px;letter-spacing:.06em;margin:20px 0 0}.signature span{color:var(--pink)}.hearts{position:fixed;inset:0;z-index:1;pointer-events:none}.floating-heart{position:absolute;color:var(--pink);opacity:0;animation:floatHeart 5s linear forwards}@keyframes floatHeart{10%{opacity:.55}100%{transform:translateY(-105vh) rotate(40deg);opacity:0}}#confetti{position:fixed;z-index:100;inset:0;pointer-events:none;width:100%;height:100%}.finale .speech{background:linear-gradient(145deg,#fff,#fff1f7);box-shadow:0 20px 60px rgba(255,111,159,.23)}.finale h1{color:var(--pink);font-size:clamp(36px,5vw,58px)}.final-line{font:800 clamp(24px,3vw,35px)/1.2 Georgia,serif!important;color:#4d3442!important;margin-top:18px!important}.gift{display:inline-block;font-size:38px;animation:giftBounce .7s infinite alternate}@keyframes giftBounce{to{transform:translateY(-8px) rotate(5deg)}}@media(max-width:850px){.scene{padding-top:65px}.card{grid-template-columns:1fr;min-height:0}.dino-wrap{height:330px;padding:22px 0 0}.dino{height:330px;width:auto}.dino-glow{width:260px;height:260px}.dialog{padding:0 28px 42px}.speech{min-height:230px;padding:26px}.speech .tail{left:60px;top:-17px;bottom:auto;transform:rotate(90deg)}.age-badge{width:64px;height:64px;top:21px;left:22px}.age-badge span{font-size:24px}}@media(max-width:480px){.scene{width:min(100% - 16px,480px);padding:54px 0 14px}.card{border-radius:27px}.card:before{inset:9px;border-radius:20px}.dino-wrap{height:270px}.dino{height:275px}.dialog{padding:0 16px 28px}.speech{padding:24px 20px;border-radius:21px;min-height:245px}h1{font-size:31px}.message{font-size:14px}.choices{min-height:74px;align-items:flex-start}.choice{padding:13px 17px}.sound{top:10px;right:10px}.sound b{display:none}.age-badge{transform:scale(.85) rotate(-8deg);transform-origin:top left}.signature{font-size:9px}}@media(prefers-reduced-motion:reduce){.dino,.dino-heart,.sky i,.gift{animation:none}.speech,.choice,.progress span{transition:none}}
