:root{--ink:#26214a;--cream:#fff6e8;--yellow:#ffd35c;--orange:#ff8a55;--pink:#ff86a4;--purple:#6f58cf;--navy:#17153c;--ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#090912;font-family:"Be Vietnam Pro",system-ui,sans-serif;color:white;overflow:hidden}button,a{font:inherit}button{touch-action:manipulation}.scene{position:fixed;inset:0;overflow:hidden}.intro-scene{z-index:20;background:#050506;display:grid;place-items:center;text-align:center;cursor:pointer;transition:opacity .9s ease,visibility .9s}.intro-scene.done{opacity:0;visibility:hidden}.film-grain{position:absolute;inset:-50%;opacity:.08;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E");animation:grain .25s steps(2) infinite}.quote-wrap{padding:28px;transform:translateY(-3vh)}.quote{font-family:"DM Serif Display",Georgia,serif;font-size:clamp(25px,6vw,54px);line-height:1.42;letter-spacing:.01em;margin:0;opacity:0;filter:blur(5px);animation:reveal 1.7s .35s forwards}.credit{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#aaa;margin-top:28px;opacity:0;animation:fadeUp .8s 1.75s forwards}.skip{position:absolute;bottom:max(34px,env(safe-area-inset-bottom));border:0;background:none;color:#b7b7bd;font-size:12px;letter-spacing:.08em;opacity:0;animation:fadeUp .8s 2.3s forwards;padding:16px 24px}.skip span{display:inline-block;margin-left:8px;animation:nudge 1.5s infinite}
.journey-scene{opacity:0;visibility:hidden;background:linear-gradient(160deg,#6765b5 0%,#453c8b 44%,#272558 100%);transition:opacity .9s ease,visibility .9s}.journey-scene.active{opacity:1;visibility:visible}.sky{position:absolute;inset:0;background:radial-gradient(circle at 75% 25%,rgba(255,164,177,.28),transparent 34%),linear-gradient(160deg,#222052,#17163f 60%,#10102b);opacity:0;transition:opacity 1.2s}.stars,.stars:after{position:absolute;inset:0;content:"";background-image:radial-gradient(circle,#fff 0 1px,transparent 1.5px);background-size:57px 57px}.stars-a{opacity:.55}.stars-b{transform:scale(1.4);opacity:.26}.planet{position:absolute;border-radius:50%;box-shadow:inset -18px -13px 0 rgba(0,0,0,.12),0 0 40px rgba(255,255,255,.12)}.planet-a{width:95px;height:95px;background:#ef92a8;left:9%;top:15%}.planet-a span{position:absolute;width:140%;height:24%;border:8px solid #f8c979;border-radius:50%;left:-20%;top:37%;transform:rotate(-14deg)}.planet-b{width:48px;height:48px;background:#79d1cc;right:16%;top:26%}.shooting-star{position:absolute;width:110px;height:2px;background:linear-gradient(90deg,transparent,#fff);top:14%;left:-15%;transform:rotate(-18deg);opacity:.7}.room{position:absolute;inset:0;transition:transform 1.8s var(--ease),opacity 1.2s}.wall-glow{position:absolute;inset:0;background:radial-gradient(circle at 72% 31%,rgba(255,210,151,.28),transparent 36%),linear-gradient(180deg,#7771bb,#575398 70%,#46427c)}.window{position:absolute;width:min(38vw,440px);height:48vh;right:5vw;top:6vh;border:14px solid #f4dbbf;border-radius:24px;background:#292657;box-shadow:0 18px 0 rgba(49,38,92,.25),inset 0 0 50px rgba(27,20,76,.45);overflow:hidden}.window-sky{position:absolute;inset:0;background:radial-gradient(circle at 74% 20%,#fff5bf 0 10px,#ffd479 11px 28px,transparent 29px),linear-gradient(#7b72bd,#f298a6)}.window-sky:before,.window-sky:after{content:"";position:absolute;background:#ffd2cb;border-radius:50%;width:150px;height:38px;bottom:20%;left:-30px;box-shadow:55px -16px 0 8px #ffd2cb,115px 4px 0 -5px #ffd2cb}.window-sky:after{transform:scale(.55);bottom:48%;left:55%;opacity:.65}.window-sky i{position:absolute;width:3px;height:3px;border-radius:50%;background:white;box-shadow:45px 60px white,90px 25px white,145px 80px white,190px 45px white,210px 110px white}.window-cross{position:absolute;background:#f4dbbf;z-index:2}.window-cross.x{height:10px;width:100%;top:50%}.window-cross.y{width:10px;height:100%;left:50%}.shelf{position:absolute;left:5%;top:16%;width:190px;height:14px;border-radius:8px;background:#42366f;box-shadow:0 8px 0 rgba(0,0,0,.12)}.book{position:absolute;bottom:14px;width:24px;border-radius:4px 4px 0 0}.b1{height:56px;background:#ffab72;left:15px}.b2{height:67px;background:#f06f91;left:43px;transform:rotate(5deg);transform-origin:bottom}.b3{height:50px;background:#9ed5cb;left:76px}.mini-planet{position:absolute;width:47px;height:47px;border-radius:50%;background:#ffcf62;bottom:16px;right:16px;box-shadow:inset -10px -7px rgba(0,0,0,.1)}.poster{position:absolute;left:8%;top:35%;width:125px;height:160px;background:#fae5cf;color:#312a66;border:8px solid #3d326c;transform:rotate(-3deg);display:grid;place-content:center;text-align:center;box-shadow:5px 7px rgba(28,20,68,.18)}.poster span{font-size:24px;font-weight:800}.poster b{font-size:8px;letter-spacing:.16em;color:#ea6e86}.floor-shadow{position:absolute;height:22%;inset:auto 0 0;background:linear-gradient(#514b89,#3e396e)}.desk{position:absolute;left:4vw;right:4vw;bottom:7vh;height:30vh;filter:drop-shadow(0 18px 12px rgba(24,18,58,.25))}.desk-edge{position:absolute;left:0;right:0;bottom:34%;height:38px;background:linear-gradient(#f2b270,#c77b50);border-radius:14px}.leg{position:absolute;bottom:-20%;width:24px;height:55%;background:#a9674c}.leg.left{left:7%}.leg.right{right:7%}.laptop{position:absolute;width:220px;height:132px;left:23%;bottom:calc(34% + 30px);z-index:2}.laptop .screen{position:absolute;inset:0;background:#393763;border:9px solid #28264f;border-radius:12px;color:#a5f0d2;display:flex;flex-direction:column;padding:25px 20px;font:700 13px monospace}.laptop .screen i{width:70%;height:5px;background:#7c75a5;border-radius:5px;margin-top:12px}.laptop .screen i+ i{width:42%;background:#e98eae}.laptop>b{position:absolute;width:260px;height:12px;background:#cbc9db;bottom:-12px;left:-20px;border-radius:2px 2px 8px 8px}.coffee{position:absolute;left:53%;bottom:calc(34% + 30px);width:72px;height:68px;border-radius:8px 8px 24px 24px;background:#fff0dc;color:#ac5f4f;display:grid;place-items:center;font-size:28px;z-index:3}.coffee b{position:absolute;width:24px;height:29px;border:7px solid #fff0dc;border-left:0;right:-22px;border-radius:0 18px 18px 0}.steam{position:absolute;width:13px;height:35px;border-left:3px solid rgba(255,255,255,.75);border-radius:50%;top:-42px}.s1{left:20px;animation:steam 2.2s infinite}.s2{left:43px;animation:steam 2.2s .6s infinite}.plant{position:absolute;right:6%;bottom:calc(34% + 30px);width:80px;height:105px}.plant b{position:absolute;bottom:0;left:15px;width:52px;height:54px;background:#f49c7d;border-radius:8px 8px 22px 22px}.leaf{position:absolute;width:31px;height:58px;background:#66bd82;border-radius:100% 0 100% 0;left:25px;top:0;transform-origin:bottom}.leaf.l1{transform:rotate(-36deg)}.leaf.l2{transform:rotate(28deg);background:#74ce8c}.leaf.l3{width:25px;height:47px;left:38px;top:12px;transform:rotate(55deg)}.sticky{position:absolute;width:58px;height:58px;bottom:calc(34% + 16px);background:#ffe16e;color:#5f4a45;font-size:10px;text-align:center;padding:10px;transform:rotate(-6deg);z-index:4;box-shadow:2px 3px rgba(0,0,0,.12)}.sticky b{font-size:9px}.st1{left:9%}.st2{left:65%;background:#f4a7b9;transform:rotate(8deg);font-size:20px}.rocket-wrap{position:absolute;right:11%;bottom:24%;width:180px;height:250px;z-index:5;transition:transform 1s var(--ease)}.rocket-shadow{position:absolute;width:160px;height:28px;border-radius:50%;background:rgba(28,20,61,.26);bottom:0;left:8px}.rocket{position:absolute;left:22px;bottom:15px;width:136px;height:218px;transform-origin:center bottom;animation:rocketIdle 3s ease-in-out infinite}.antenna{position:absolute;width:5px;height:33px;background:#433b79;left:65px;top:-24px}.antenna i{position:absolute;width:16px;height:16px;border-radius:50%;background:#ff7a90;left:-5px;top:-8px;box-shadow:0 0 0 5px rgba(255,122,144,.18)}.rocket-body{position:absolute;inset:0 0 36px;background:linear-gradient(90deg,#e7e8f5,#fff 50%,#dad9ec);border:5px solid #393364;border-radius:65px 65px 28px 28px;overflow:hidden}.windshield{position:absolute;left:27px;top:24px;width:72px;height:62px;border-radius:50% 50% 42% 42%;border:6px solid #413973;background:linear-gradient(160deg,#c7f4f0,#77bdd1);overflow:hidden}.astronaut{position:absolute;width:58px;height:58px;left:8px;top:11px}.face{position:absolute;width:40px;height:38px;border-radius:48%;background:#f2b69e;left:4px;top:6px;border:3px solid #fff}.face:before,.cap-face:before{content:"";position:absolute;width:4px;height:5px;border-radius:50%;background:#403255;left:9px;top:15px;box-shadow:15px 0 #403255}.face b,.cap-face b{position:absolute;width:10px;height:5px;border-bottom:2px solid #9d4f62;border-radius:50%;left:12px;top:24px}.hair{position:absolute;z-index:2;width:41px;height:18px;background:#4c3155;border-radius:50% 50% 30% 20%;left:4px;top:4px}.hand{position:absolute;right:-5px;top:19px;font-size:21px;transform-origin:bottom;animation:wave .9s ease-in-out infinite}.brand{position:absolute;left:16px;top:103px;color:#4e438a;font-weight:800;font-size:14px;letter-spacing:.04em}.brand small{color:#ed6687}.rocket-display{position:absolute;right:12px;top:101px;background:#27264b;color:#8ff0bf;border-radius:4px;padding:5px;font:700 7px monospace}.door{position:absolute;left:43px;bottom:-3px;width:43px;height:44px;border:4px solid #7d74ad;border-radius:50% 50% 8px 8px;background:#cac8df}.door span{position:absolute;width:5px;height:5px;border-radius:50%;background:#f1a53c;right:5px;top:20px}.light{position:absolute;width:7px;height:7px;border-radius:50%;bottom:8px}.l-red{left:15px;background:#ff6d82}.l-green{right:15px;background:#6be6ac}.fin{position:absolute;width:38px;height:70px;bottom:26px;background:#f08093;border:5px solid #393364}.left-fin{left:-20px;border-radius:50% 5px 5px 30px;transform:rotate(8deg)}.right-fin{right:-20px;border-radius:5px 50% 30px 5px;transform:rotate(-8deg)}.engine{position:absolute;display:flex;gap:6px;left:37px;bottom:18px}.engine i{width:16px;height:24px;background:#554c82;border-radius:0 0 9px 9px}.smoke{position:absolute;left:28px;bottom:-5px;width:85px;height:45px;opacity:0}.smoke i{position:absolute;width:35px;height:35px;background:#fff;border-radius:50%;bottom:0;left:0}.smoke i:nth-child(2){left:21px;bottom:-10px;width:45px;height:45px}.smoke i:nth-child(3){left:54px;width:31px;height:31px}.smoke i:nth-child(4){left:18px;bottom:19px;width:28px;height:28px}.smoke i:nth-child(5){left:47px;bottom:18px;width:27px;height:27px}.panel{position:absolute;z-index:8;transition:opacity .6s var(--ease),transform .7s var(--ease),visibility .6s}.welcome-panel{left:7%;top:9%;width:min(52vw,700px);padding:28px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.15em;color:#ffe097;margin-bottom:18px}.eyebrow span{color:#ff9bb1}.welcome-panel h1{margin:0;color:#fffaf1;font-size:clamp(26px,3.4vw,50px);line-height:1.24;letter-spacing:-.035em;text-wrap:balance;text-shadow:0 4px 14px rgba(45,32,98,.22)}.primary-btn{border:0;min-height:56px;padding:15px 25px;border-radius:18px;background:linear-gradient(135deg,#ffd95f,#ff9d61);box-shadow:0 8px 0 #ba5d51,0 13px 22px rgba(47,28,77,.25);color:#342647;font-weight:800;cursor:pointer;transition:transform .18s,box-shadow .18s;margin-top:28px}.primary-btn:hover{transform:translateY(-3px);box-shadow:0 11px 0 #ba5d51,0 16px 25px rgba(47,28,77,.26)}.primary-btn:active{transform:translateY(5px);box-shadow:0 3px 0 #ba5d51}.primary-btn:focus-visible,.wish-btn:focus-visible,.close:focus-visible{outline:4px solid #fff;outline-offset:3px}.primary-btn span{font-size:20px}.pulse{animation:pulse 2.2s infinite}.hint{font-size:12px;color:#efe4fb;margin:18px 0 0 8px}.picker-panel{inset:4vh 3vw auto;opacity:0;visibility:hidden;transform:translateY(20px);text-align:center}.picker-panel h2{font-size:clamp(24px,4vw,43px);margin:4px 0 6px}.picker-sub{color:#e7dcff;margin:0;font-size:13px}.wish-orbit{display:grid;grid-template-columns:repeat(4,minmax(145px,1fr));gap:15px;max-width:980px;margin:24px auto 0}.wish-btn{position:relative;min-height:142px;border:0;border-radius:28px;background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(246,225,255,.9));color:#312657;padding:17px 10px 12px;cursor:pointer;box-shadow:0 10px 0 rgba(35,27,86,.22),0 18px 28px rgba(24,17,65,.2);transition:transform .25s var(--ease),filter .25s}.wish-btn:before{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:rgba(101,82,176,.13);top:15px;left:18px;box-shadow:42px 23px 0 -4px rgba(101,82,176,.1)}.wish-btn:hover{transform:translateY(-7px) rotate(-1deg);filter:brightness(1.06)}.wish-btn:nth-child(even):hover{transform:translateY(-7px) rotate(1deg)}.wish-icon{position:relative;display:grid;place-items:center;width:67px;height:67px;border-radius:50%;margin:0 auto 9px;font-size:34px;background:var(--p);box-shadow:inset -9px -7px rgba(77,46,112,.11),0 4px 0 white;animation:float 3.2s ease-in-out infinite}.wish-btn:nth-child(2n) .wish-icon{animation-delay:.45s}.wish-btn:nth-child(3n) .wish-icon{animation-delay:.9s}.wish-label{font-size:12px;font-weight:800;line-height:1.32}.card-panel{inset:0;display:grid;place-items:center;background:rgba(25,19,66,.25);opacity:0;visibility:hidden;transform:scale(.94)}.wish-card{position:relative;width:min(90vw,560px);background:linear-gradient(145deg,#fffdf7,#fff2df);color:#302552;border:4px solid #fff;border-radius:31px;padding:26px clamp(23px,6vw,50px) 34px;text-align:center;box-shadow:0 28px 80px rgba(23,15,61,.36),inset 0 0 0 2px #f2c9c2;overflow:hidden}.wish-card:before,.wish-card:after{content:"";position:absolute;width:140px;height:140px;border-radius:50%;background:#f9b1b8;opacity:.22;left:-55px;top:-60px}.wish-card:after{left:auto;top:auto;right:-65px;bottom:-65px;background:#a79be6}.card-stars{color:#db7992;font-size:13px;letter-spacing:.5em}.chosen-icon{width:86px;height:86px;border-radius:50%;background:#ffd569;margin:14px auto 10px;display:grid;place-items:center;font-size:43px;box-shadow:inset -12px -9px rgba(96,58,100,.12),0 8px 0 #e4a263}.card-kicker{font-size:9px;font-weight:800;letter-spacing:.16em;color:#9b6a86}.wish-card h2{font-family:"DM Serif Display",serif;font-size:clamp(24px,5vw,36px);line-height:1.15;margin:8px 0;color:#3e315c}.card-rule{width:52px;height:3px;background:#ed8a9d;margin:17px auto;border-radius:2px}.wish-message{font-size:clamp(14px,2.8vw,17px);line-height:1.65;margin:0 auto;max-width:450px}.send-btn{margin-top:23px}.envelope{position:absolute;z-index:13;left:50%;top:50%;width:120px;height:78px;background:#ffe4b9;border:3px solid #5a427e;border-radius:8px;transform:translate(-50%,-50%) scale(0);display:grid;place-items:center;font-size:34px;box-shadow:0 12px 30px rgba(0,0,0,.3)}.envelope i{position:absolute;inset:0;background:linear-gradient(32deg,transparent 49%,#d89d8a 50% 52%,transparent 53%),linear-gradient(-32deg,transparent 49%,#d89d8a 50% 52%,transparent 53%)}.envelope span{z-index:2}.countdown{position:absolute;z-index:14;left:50%;top:46%;transform:translate(-50%,-50%);font-weight:800;font-size:clamp(54px,15vw,130px);text-shadow:0 9px 0 rgba(35,26,77,.25);opacity:0}.final-panel{inset:9vh 6vw auto;max-width:680px;opacity:0;visibility:hidden;transform:translateY(25px)}.final-badge{display:inline-block;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.28);border-radius:30px;padding:10px 15px;font-size:10px;font-weight:800;letter-spacing:.1em;color:#ffe098}.final-panel h2{font-size:clamp(28px,4.7vw,50px);line-height:1.18;margin:22px 0 16px;text-wrap:balance}.final-panel>p{font-size:clamp(15px,2.2vw,20px);line-height:1.55;max-width:600px;color:#eee8ff}.final-panel footer{margin-top:30px;color:#cfc8e9;font-size:12px}.final-panel footer a{color:#ffd46c;font-weight:800;text-decoration-thickness:2px;text-underline-offset:3px}.modal[hidden]{display:none}.modal{position:absolute;z-index:30;inset:0;display:grid;place-items:center;padding:18px}.modal-backdrop{position:absolute;inset:0;background:rgba(12,9,39,.72);backdrop-filter:blur(8px)}.captain-card{position:relative;width:min(92vw,440px);background:linear-gradient(145deg,#fff8e9,#fbe2df);border:4px solid white;border-radius:34px;text-align:center;color:#34274f;padding:28px 24px 30px;box-shadow:0 30px 100px rgba(8,5,31,.6);animation:pop .55s var(--ease)}.close{position:absolute;right:14px;top:12px;width:44px;height:44px;border:0;border-radius:50%;background:#ece0e4;color:#65506e;font-size:26px;cursor:pointer;z-index:4}.captain{position:relative;width:150px;height:185px;margin:-5px auto 0}.helmet{position:absolute;width:128px;height:130px;left:11px;top:0;background:#f3f0fa;border:5px solid #4c4174;border-radius:50% 50% 43% 43%;box-shadow:inset -12px -9px #ded9ed}.visor{position:absolute;left:17px;top:21px;width:84px;height:75px;border-radius:48%;border:5px solid #55497d;background:linear-gradient(145deg,#bdf1ee,#6eb5d0);overflow:hidden}.cap-face{position:absolute;width:61px;height:55px;background:#eeb29a;border-radius:50%;left:7px;top:15px}.cap-hair{position:absolute;z-index:2;width:62px;height:27px;border-radius:60% 50% 20% 20%;background:#382e46;left:7px;top:10px}.cap-face:before{left:14px;top:24px;box-shadow:24px 0 #403255}.cap-face b{left:22px;top:38px}.helmet-mark{position:absolute;right:2px;top:55px;background:#f27391;color:white;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800}.captain-body{position:absolute;bottom:0;left:29px;width:92px;height:81px;background:#f1eff8;border:5px solid #4c4174;border-radius:28px 28px 14px 14px}.badge{position:absolute;left:34px;top:18px;color:#ff9d4f}.arm{position:absolute;width:34px;height:63px;background:#f1eff8;border:5px solid #4c4174;border-radius:18px}.arm-left{left:-23px;top:6px;transform:rotate(18deg)}.arm-right{right:-30px;top:-8px;transform:rotate(-37deg)}.arm-right b{position:absolute;font-style:normal;font-size:36px;right:-22px;top:-25px;transform:rotate(37deg)}.captain-label{display:inline-block;background:#5c4b8e;color:#fff;padding:7px 13px;border-radius:20px;font-size:9px;font-weight:800;letter-spacing:.12em}.captain-card h3{font-size:24px;line-height:1.3;margin:15px 0 8px}.captain-card p{line-height:1.55;font-size:14px;margin:0}.captain-card .primary-btn{margin-top:20px}
#app[data-scene="picker"] .welcome-panel{opacity:0;visibility:hidden;transform:translateY(-15px)}#app[data-scene="picker"] .picker-panel{opacity:1;visibility:visible;transform:none}#app[data-scene="card"] .welcome-panel,#app[data-scene="card"] .picker-panel{opacity:0;visibility:hidden}#app[data-scene="card"] .card-panel{opacity:1;visibility:visible;transform:scale(1)}#app[data-scene="launch"] .panel{opacity:0;visibility:hidden}#app[data-scene="launch"] .envelope{animation:pack 2s var(--ease) forwards}#app[data-scene="launch"] .rocket{animation:rumble .14s linear infinite}#app[data-scene="launch"] .smoke{opacity:1}#app[data-scene="launch"] .room{animation:roomDrop 5.5s 2.1s var(--ease) forwards}#app[data-scene="launch"] .sky{animation:skyIn 5.5s 2s ease forwards}#app[data-scene="launch"] .rocket-wrap{animation:blast 5.3s 2s var(--ease) forwards}#app[data-scene="launch"] .shooting-star{animation:shoot 1.1s 4.5s ease-out forwards}#app[data-scene="final"] .room{transform:translateY(80%) scale(1.25);opacity:0}#app[data-scene="final"] .sky{opacity:1}#app[data-scene="final"] .rocket-wrap{right:8%;bottom:31%;transform:scale(.82) rotate(7deg)}#app[data-scene="final"] .final-panel{opacity:1;visibility:visible;transform:none}#app[data-scene="final"] .rocket{animation:spaceFloat 4s ease-in-out infinite}#app[data-scene="final"] .smoke{opacity:.35}
@keyframes reveal{to{opacity:1;filter:none}}@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:.85;transform:none}}@keyframes nudge{50%{transform:translateX(5px)}}@keyframes grain{0%{transform:translate(0)}25%{transform:translate(2%,-1%)}50%{transform:translate(-1%,2%)}75%{transform:translate(1%,1%)}}@keyframes steam{0%{opacity:0;transform:translateY(10px) scale(.8)}40%{opacity:.8}100%{opacity:0;transform:translateY(-16px) translateX(6px) scale(1.2)}}@keyframes rocketIdle{50%{transform:translateY(-6px)}}@keyframes wave{50%{transform:rotate(26deg)}}@keyframes pulse{50%{transform:translateY(-3px) scale(1.035)}}@keyframes float{50%{transform:translateY(-5px) rotate(3deg)}}@keyframes pop{from{opacity:0;transform:translateY(25px) scale(.9)}}@keyframes pack{0%{transform:translate(-50%,-50%) scale(0) rotate(-8deg)}30%{transform:translate(-50%,-50%) scale(1) rotate(4deg)}65%{transform:translate(calc(35vw - 50%),calc(22vh - 50%)) scale(.7) rotate(9deg);opacity:1}100%{transform:translate(calc(35vw - 50%),calc(22vh - 50%)) scale(.15);opacity:0}}@keyframes rumble{25%{transform:translate(1px,-1px) rotate(.5deg)}75%{transform:translate(-1px,1px) rotate(-.5deg)}}@keyframes roomDrop{40%{transform:scale(1.03)}100%{transform:translateY(100%) scale(1.3);opacity:0}}@keyframes skyIn{0%,20%{opacity:0}100%{opacity:1}}@keyframes blast{0%,28%{transform:none}55%{transform:translate(-20vw,-21vh) rotate(-9deg) scale(.95)}100%{transform:translate(-58vw,-37vh) rotate(-6deg) scale(.76)}}@keyframes shoot{to{left:110%;top:45%;opacity:0}}@keyframes skyIn{to{opacity:1}}@keyframes spaceFloat{50%{transform:translate(-8px,-12px) rotate(-2deg)}}
@media(max-width:760px){.window{right:-6vw;width:53vw;height:39vh;top:8vh;border-width:9px}.shelf,.poster{display:none}.desk{left:-8vw;right:-8vw;bottom:4vh;height:27vh}.laptop{left:12%;transform:scale(.72);transform-origin:bottom}.coffee{left:49%;transform:scale(.8);transform-origin:bottom}.plant{right:11%;transform:scale(.78);transform-origin:bottom}.sticky{display:none}.rocket-wrap{right:6%;bottom:21%;transform:scale(.75);transform-origin:bottom right}.welcome-panel{top:5%;left:0;width:100%;padding:24px 20px;text-align:left}.welcome-panel h1{font-size:clamp(25px,7.4vw,34px);max-width:92%}.welcome-panel .primary-btn{margin-top:22px}.picker-panel{inset:2.5vh 12px auto}.picker-panel .eyebrow{margin-bottom:8px}.picker-panel h2{font-size:24px}.wish-orbit{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.wish-btn{min-height:112px;border-radius:20px;padding:11px 8px 9px}.wish-icon{width:52px;height:52px;font-size:27px;margin-bottom:6px}.wish-label{font-size:11px}.card-panel{align-items:center}.wish-card{max-height:92vh;overflow:auto;padding-top:18px;border-radius:26px}.chosen-icon{width:67px;height:67px;font-size:34px;margin-top:8px}.wish-card h2{font-size:24px}.wish-message{font-size:14px;line-height:1.55}.final-panel{inset:7vh 18px auto;text-align:left}.final-panel h2{font-size:29px}.final-panel .primary-btn{margin-top:18px}.final-panel footer{margin-top:25px}.captain-card{padding-top:18px}.captain{transform:scale(.82);height:158px;margin-top:-15px}.captain-card h3{font-size:21px}#app[data-scene="final"] .rocket-wrap{right:-2%;bottom:16%;transform:scale(.57) rotate(8deg);transform-origin:bottom right}@keyframes pack{0%{transform:translate(-50%,-50%) scale(0) rotate(-8deg)}30%{transform:translate(-50%,-50%) scale(1) rotate(4deg)}70%{transform:translate(25vw,18vh) scale(.6) rotate(9deg);opacity:1}100%{transform:translate(35vw,21vh) scale(.12);opacity:0}}@keyframes blast{0%,28%{transform:scale(.75)}55%{transform:translate(-25vw,-27vh) rotate(-9deg) scale(.68)}100%{transform:translate(-69vw,-49vh) rotate(-6deg) scale(.52)}}}
@media(max-width:380px), (max-height:700px){.wish-btn{min-height:96px}.wish-icon{width:45px;height:45px;font-size:23px}.wish-orbit{gap:7px}.picker-panel h2{font-size:21px}.wish-card{transform:scale(.92)}.welcome-panel h1{font-size:24px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;scroll-behavior:auto!important}.rocket,.wish-icon{animation:none!important}#app[data-scene="launch"] .room{transform:translateY(90%);opacity:0}#app[data-scene="launch"] .sky{opacity:1}}

/* Self-contained illustrated wish tokens */
.wish-icon{font-size:0}.wish-icon svg,.chosen-icon svg,.envelope svg{width:76%;height:76%;overflow:visible}.wish-icon svg *,.chosen-icon svg *,.envelope svg *{vector-effect:non-scaling-stroke}.chosen-icon{font-size:0}.envelope{font-size:0}.envelope span{z-index:2;width:48px;height:48px;display:grid;place-items:center}

#app[data-scene="final"] .welcome-panel,#app[data-scene="final"] .picker-panel,#app[data-scene="final"] .card-panel{opacity:0;visibility:hidden;pointer-events:none}

/* 20/10 visual refresh — official Nexa mark, richer office and true planet choices */
:root{--nexa-navy:#021a34;--nexa-blue:#0064fc;--nexa-cyan:#01cbf7;--nexa-green:#5de986;--soft-cream:#fff8e9}
.intro-scene{cursor:default}.intro-continue{opacity:0;min-height:52px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(255,255,255,.09);color:#fff;padding:13px 22px;box-shadow:0 10px 30px rgba(0,0,0,.28);backdrop-filter:blur(10px);cursor:pointer}.intro-continue:hover{background:rgba(255,255,255,.16);transform:translateY(-2px)}
.logo-crop{display:block;position:relative;overflow:hidden}.logo-crop img{position:absolute;width:340%;height:340%;max-width:none;left:-120%;top:-130%;object-fit:contain}
.poster{place-content:start center;padding-top:21px}.poster .logo-crop{width:82px;height:76px;margin:auto}.poster b{margin-top:5px;color:var(--nexa-blue)}
.ceiling-lamp{position:absolute;left:46%;top:-5px;width:110px;height:98px;z-index:2;filter:drop-shadow(0 15px 22px rgba(255,224,151,.35));transform-origin:top;animation:lampSway 5s ease-in-out infinite}.ceiling-lamp:before{content:"";position:absolute;width:5px;height:58px;background:#3a356d;left:52px;top:0}.ceiling-lamp i{position:absolute;width:72px;height:42px;border-radius:50% 50% 14px 14px;background:#f7c870;border:5px solid #463b71;left:18px;top:48px}.ceiling-lamp b{position:absolute;width:140px;height:95px;background:linear-gradient(rgba(255,227,164,.22),transparent);clip-path:polygon(35% 0,65% 0,100% 100%,0 100%);left:-16px;top:84px}
.pinboard{position:absolute;left:19%;top:12%;width:150px;height:94px;border:7px solid #9a654d;border-radius:10px;background:#d89969;transform:rotate(2deg);box-shadow:5px 8px rgba(39,28,78,.12)}.pinboard i{position:absolute;width:36px;height:42px;background:#ffe375;top:12px;left:13px;transform:rotate(-7deg);box-shadow:45px 14px #f6a8bf,82px -2px #9fe0d2}.pinboard b{position:absolute;bottom:8px;right:12px;color:#54385e;font-size:14px}.pinboard:after{content:"✦";position:absolute;right:42px;top:7px;color:#fff8c1}
.keyboard{position:absolute;left:36%;bottom:calc(34% + 8px);width:145px;height:35px;border:4px solid #575079;border-radius:7px;background:repeating-linear-gradient(90deg,#ddd9e9 0 10px,#aaa5c3 11px 12px);transform:perspective(80px) rotateX(35deg);z-index:4}.keyboard i{display:none}.mouse{position:absolute;left:49%;bottom:calc(34% + 11px);width:31px;height:38px;border-radius:50% 50% 45% 45%;background:#f0edf7;border:4px solid #575079;z-index:4}.desk-lamp{position:absolute;right:22%;bottom:calc(34% + 27px);width:72px;height:112px;z-index:3}.desk-lamp:before{content:"";position:absolute;width:8px;height:78px;background:#453d70;left:32px;bottom:7px;transform:rotate(-12deg)}.desk-lamp i{position:absolute;width:56px;height:36px;background:#ffd36d;border:5px solid #453d70;border-radius:35px 35px 8px 8px;top:0;left:4px;transform:rotate(-15deg)}.desk-lamp b{position:absolute;bottom:0;left:3px;width:65px;height:13px;border-radius:50%;background:#453d70}.desk-lamp span{position:absolute;width:88px;height:62px;background:linear-gradient(135deg,rgba(255,228,143,.35),transparent);clip-path:polygon(22% 0,64% 0,100% 100%,0 100%);top:28px;left:-19px}
.chair{position:absolute;left:15%;bottom:1vh;width:130px;height:165px;z-index:1;filter:drop-shadow(0 10px 10px rgba(20,15,55,.2))}.chair i{position:absolute;left:16px;top:0;width:98px;height:112px;border:8px solid #4b4178;border-radius:45px 45px 20px 20px;background:#ef8ba2}.chair b{position:absolute;left:57px;top:108px;width:17px;height:57px;background:#4b4178;box-shadow:-35px 46px 0 -5px #4b4178,35px 46px 0 -5px #4b4178}
.rocket-wrap{width:230px;height:315px;right:8%;bottom:17%}.rocket{transform:scale(1.26);left:45px;bottom:28px}.rocket-shadow{width:205px;left:10px}.brand{left:9px;top:92px;width:52px;height:42px;border-radius:9px;background:#fff;border:1px solid rgba(0,100,252,.15)}.brand img{width:390%;height:390%;left:-145%;top:-150%}.rocket-display{top:102px}.rocket-body{border-color:var(--nexa-navy)}.fin{border-color:var(--nexa-navy);background:linear-gradient(180deg,var(--nexa-cyan),var(--nexa-blue))}.antenna i{background:var(--nexa-green)}
.welcome-panel{width:min(54vw,720px);padding:26px 30px 28px;background:linear-gradient(115deg,rgba(52,45,115,.78),rgba(52,45,115,.22));border-radius:28px;backdrop-filter:blur(3px);box-shadow:0 20px 40px rgba(23,17,68,.15)}
.picker-panel{inset:2vh 3vw auto}.wish-orbit{grid-template-columns:repeat(4,minmax(122px,1fr));gap:18px 20px;max-width:930px;margin:20px auto 0}.wish-btn{position:relative;min-height:176px;border:0;border-radius:50%;padding:0;background:transparent;color:#fff;box-shadow:none;overflow:visible;display:grid;place-items:center;align-content:start;cursor:pointer}.wish-btn:before{content:"";position:absolute;width:118px;height:118px;border-radius:50%;top:0;left:50%;transform:translateX(-50%);background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.95) 0 5%,rgba(255,255,255,.42) 6% 13%,transparent 14%),radial-gradient(circle at 42% 36%,color-mix(in srgb,var(--p) 90%,white),var(--p) 58%,color-mix(in srgb,var(--p) 63%,#301e69));box-shadow:inset -18px -14px 22px rgba(34,21,82,.24),inset 12px 10px 18px rgba(255,255,255,.24),0 14px 24px rgba(22,14,67,.28),0 0 0 3px rgba(255,255,255,.42);transition:transform .25s,filter .25s}.wish-btn:after{content:"";position:absolute;width:150px;height:39px;border:7px solid color-mix(in srgb,var(--p) 58%,white);border-radius:50%;top:40px;left:50%;transform:translateX(-50%) rotate(-12deg);box-shadow:0 3px 0 rgba(40,24,78,.16);z-index:0}.wish-btn:hover{transform:none;filter:none}.wish-btn:hover:before,.wish-btn:focus-visible:before{transform:translateX(-50%) translateY(-6px) scale(1.05);filter:brightness(1.08)}.wish-icon{position:relative;z-index:2;width:74px;height:74px;margin:21px auto 0;background:transparent;box-shadow:none;animation:planetBob 4s ease-in-out infinite}.wish-icon svg{width:100%;height:100%;filter:drop-shadow(0 4px 2px rgba(42,25,70,.18))}.wish-label{position:absolute;z-index:3;top:128px;left:50%;transform:translateX(-50%);width:max-content;max-width:155px;min-width:112px;padding:8px 10px;border-radius:999px;background:rgba(24,19,66,.7);border:1px solid rgba(255,255,255,.27);color:#fff;font-size:12px;font-weight:800;line-height:1.25;box-shadow:0 7px 15px rgba(20,13,58,.18);backdrop-filter:blur(8px)}
.celebration-panel{inset:0;display:grid;place-items:center;background:radial-gradient(circle at center,rgba(255,240,185,.3),rgba(25,19,66,.48));opacity:0;visibility:hidden;transform:scale(.94);overflow:hidden}.celebration-glow{position:absolute;width:min(76vw,620px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,249,204,.42),rgba(117,212,237,.16) 40%,transparent 70%);animation:glowPulse 1.4s ease-in-out infinite}.celebration-stage{position:relative;width:min(82vw,560px);height:min(54vh,380px);z-index:2}.celebration-title{position:absolute;z-index:5;bottom:8vh;margin:0;padding:12px 20px;border-radius:999px;background:rgba(10,18,54,.66);border:1px solid rgba(255,255,255,.3);font-size:clamp(18px,3vw,28px);font-weight:900;color:#fff6c9;box-shadow:0 12px 30px rgba(8,5,35,.25)}.soft-confetti{position:absolute;inset:0}.soft-confetti i{position:absolute;top:-10%;left:8%;width:12px;height:19px;border-radius:5px;background:#ffd65e;animation:confettiFall 2.3s ease-in infinite}.soft-confetti i:nth-child(2){left:16%;background:#70e8c2;animation-delay:.25s}.soft-confetti i:nth-child(3){left:25%;background:#f799b4;animation-delay:.6s}.soft-confetti i:nth-child(4){left:34%;background:#76c8ff;animation-delay:.1s}.soft-confetti i:nth-child(5){left:44%;background:#ffd65e;animation-delay:.8s}.soft-confetti i:nth-child(6){left:53%;background:#f799b4;animation-delay:.45s}.soft-confetti i:nth-child(7){left:62%;background:#70e8c2;animation-delay:.95s}.soft-confetti i:nth-child(8){left:70%;background:#ffd65e;animation-delay:.15s}.soft-confetti i:nth-child(9){left:78%;background:#76c8ff;animation-delay:.7s}.soft-confetti i:nth-child(10){left:86%;background:#f799b4;animation-delay:.38s}.soft-confetti i:nth-child(11){left:93%;background:#70e8c2;animation-delay:.88s}.soft-confetti i:nth-child(12){left:48%;background:#76c8ff;animation-delay:1.05s}
#app[data-scene="celebrate"] .welcome-panel,#app[data-scene="celebrate"] .picker-panel{opacity:0;visibility:hidden;pointer-events:none}#app[data-scene="celebrate"] .celebration-panel{opacity:1;visibility:visible;transform:scale(1)}#app[data-scene="card"] .celebration-panel{opacity:0;visibility:hidden}
.scene-icon{position:absolute;width:120px;height:120px;left:50%;top:50%;transform:translate(-50%,-50%);filter:drop-shadow(0 12px 12px rgba(18,12,55,.2))}.scene-icon svg{width:100%;height:100%}
.piggy{position:absolute;width:230px;height:145px;border-radius:48% 52% 42% 43%;background:#f7a2ba;border:6px solid #493b68;left:50%;top:55%;transform:translate(-50%,-50%);box-shadow:inset -20px -15px #df799f,0 18px 28px rgba(24,16,66,.25)}.piggy:before{content:"";position:absolute;width:62px;height:55px;border-radius:50%;right:-35px;top:28px;background:#f7a2ba;border:6px solid #493b68}.piggy:after{content:"";position:absolute;width:60px;height:9px;border-radius:8px;background:#493b68;left:78px;top:-4px}.piggy span{position:absolute;width:17px;height:17px;border-radius:50%;background:#493b68;right:16px;top:48px}.piggy i,.piggy b{position:absolute;width:26px;height:42px;background:#f7a2ba;border:6px solid #493b68;border-top:0;bottom:-30px;border-radius:0 0 12px 12px}.piggy i{left:45px}.piggy b{right:45px}.coin-rain i{position:absolute;left:50%;top:-5%;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#ffd653;border:4px solid #dd9842;color:#fff;font-style:normal;animation:coinDrop 1.45s ease-in infinite}.coin-rain i:nth-child(2){margin-left:-130px;animation-delay:.2s}.coin-rain i:nth-child(3){margin-left:105px;animation-delay:.4s}.coin-rain i:nth-child(4){margin-left:-75px;animation-delay:.58s}.coin-rain i:nth-child(5){margin-left:58px;animation-delay:.76s}.coin-rain i:nth-child(6){margin-left:-175px;animation-delay:.94s}.coin-rain i:nth-child(7){margin-left:155px;animation-delay:1.1s}.coin-rain i:nth-child(8){margin-left:20px;animation-delay:1.25s}.coin-rain i:nth-child(9){margin-left:-25px;animation-delay:1.35s}
.big-clock{position:absolute;width:150px;height:150px;left:18%;top:30%;animation:clockSpin .9s ease-out forwards}.big-clock svg{width:100%;height:100%}.closing-laptop{position:absolute;right:18%;top:38%;width:170px;height:105px;border:7px solid #403968;border-radius:12px;background:#8078bc;transform-origin:bottom;animation:laptopClose 2s .25s ease-in-out forwards}.closing-laptop:before{content:"XONG!";position:absolute;inset:0;display:grid;place-items:center;color:#baffc9;font-weight:900}.closing-laptop b{position:absolute;width:205px;height:13px;left:-25px;bottom:-18px;border-radius:5px;background:#ddd9eb}.paper-flower{position:absolute;left:50%;top:43%;width:82px;height:82px;animation:flowerPop 1.4s .9s both}.paper-flower i{position:absolute;width:38px;height:48px;background:#ff9eb8;border-radius:60% 20% 60% 20%;left:22px;top:0;transform-origin:20px 42px}.paper-flower i:nth-child(2){transform:rotate(90deg)}.paper-flower i:nth-child(3){transform:rotate(180deg)}.paper-flower i:nth-child(4){transform:rotate(270deg)}.paper-flower b{position:absolute;width:24px;height:24px;border-radius:50%;background:#ffd55b;left:30px;top:30px}
.banquet-table{position:absolute;width:380px;height:115px;border-radius:50%;background:#fff5dd;border:8px solid #653f78;left:50%;top:58%;transform:translate(-50%,-50%) scaleX(.2);animation:tableBloom .8s ease-out forwards}.banquet-table:after{content:"";position:absolute;width:250px;height:110px;background:#f18ca6;left:56px;top:50px;clip-path:polygon(15% 0,85% 0,100% 100%,0 100%)}.dish{position:absolute;z-index:3;font-size:56px;left:50%;top:48%;filter:drop-shadow(0 8px 5px rgba(42,25,68,.22));animation:dishBloom .6s cubic-bezier(.2,.8,.25,1.4) both}.dish.d1{margin-left:-160px;animation-delay:.35s}.dish.d2{margin-left:-75px;top:40%;animation-delay:.55s}.dish.d3{margin-left:18px;top:41%;animation-delay:.7s}.dish.d4{margin-left:105px;animation-delay:.85s}
.sleep-cloud{position:absolute;width:330px;height:150px;border-radius:90px;background:#fff7f2;left:50%;top:55%;transform:translate(-50%,-50%);box-shadow:-75px 18px 0 -25px #fff7f2,80px 20px 0 -20px #fff7f2,0 18px 30px rgba(34,22,80,.2);animation:cloudBreathe 2s ease-in-out infinite}.sleep-cloud span{position:absolute;font-size:72px;left:128px;top:32px}.zzz i{position:absolute;color:#d8ceff;font-style:normal;font-weight:900;font-size:54px;left:65%;top:18%;animation:zzzFloat 1.6s ease-out infinite}.zzz i:nth-child(2){font-size:40px;left:73%;top:30%;animation-delay:.45s}.zzz i:nth-child(3){font-size:28px;left:80%;top:39%;animation-delay:.9s}.pillow{width:95px;left:34%;top:64%}
.travel-case{position:absolute;width:205px;height:190px;left:50%;top:58%;transform:translate(-50%,-50%)}.travel-case span{position:absolute;inset:0;display:grid;place-items:center}.travel-case svg{width:150px;height:150px;animation:caseOpen 1s ease-out forwards}.beach{position:absolute;inset:12% 7% 15%;border-radius:50%;background:linear-gradient(#6fdcff 0 48%,#54c3bf 49% 66%,#ffe194 67%);transform:scale(.1);animation:beachOpen 1.4s .35s cubic-bezier(.2,.8,.3,1.2) forwards}.beach i{position:absolute;width:15px;height:100px;background:#8a5b40;left:23%;bottom:10%;transform:rotate(-8deg)}.beach i:after{content:"";position:absolute;width:120px;height:75px;border-radius:100% 0;background:#69c97e;left:-55px;top:-30px;transform:rotate(10deg)}.beach span{position:absolute;right:16%;top:12%;font-size:58px;color:#ffd452}.plane-trail{position:absolute;left:-15%;top:18%;font-size:46px;animation:planeFly 2s .4s ease-in-out forwards}
.gift-burst{position:absolute;width:190px;height:190px;left:50%;top:52%;transform:translate(-50%,-50%);animation:giftPop .8s cubic-bezier(.2,.8,.25,1.4) both}.gift-burst svg{width:100%;height:100%}.gift-burst i{position:absolute;width:15px;height:70px;border-radius:10px;background:#ffd65a;left:50%;top:50%;transform-origin:center -35px;animation:sparkShoot 1s .5s ease-out both}.gift-burst i:nth-of-type(2){transform:rotate(60deg);background:#6ce8c0}.gift-burst i:nth-of-type(3){transform:rotate(120deg);background:#79c8ff}.gift-burst i:nth-of-type(4){transform:rotate(180deg);background:#ff9db6}.gift-burst i:nth-of-type(5){transform:rotate(240deg);background:#ffd65a}.gift-burst i:nth-of-type(6){transform:rotate(300deg);background:#6ce8c0}.ribbon{position:absolute;width:150px;height:14px;background:#ff9fba;border-radius:20px;top:26%;left:18%;animation:ribbonFly 1.6s ease-out both}.ribbon.r2{left:auto;right:17%;top:60%;background:#73e2c0;animation-delay:.2s}
.family-table{position:absolute;width:320px;height:125px;border-radius:50%;background:#fff0c9;border:7px solid #5a427e;left:50%;top:60%;transform:translate(-50%,-50%);box-shadow:0 18px 0 #a76557}.family-table i{position:absolute;width:70px;height:100px;border-radius:42px 42px 18px 18px;background:#ffb279;border:6px solid #493b68;left:-15px;top:-80px;animation:familyGather .8s both}.family-table i:before{content:"";position:absolute;width:48px;height:48px;border-radius:50%;background:#efb297;left:5px;top:-34px;border:5px solid #493b68}.family-table i:nth-of-type(2){left:75px;background:#7dcad0;animation-delay:.15s}.family-table i:nth-of-type(3){left:170px;background:#f094ad;animation-delay:.3s}.family-table i:nth-of-type(4){left:260px;background:#91d08d;animation-delay:.45s}.family-table span{position:absolute;font-size:52px;color:#f16f91;left:133px;top:-82px;animation:heartBeat 1s infinite}.home-icon{width:80px;top:58%}
.crush-gift{position:absolute;width:170px;height:170px;left:50%;top:55%;transform:translate(-50%,-50%);animation:giftPop .8s both}.crush-gift svg{width:100%;height:100%}.flying-hearts i{position:absolute;left:50%;top:55%;font-style:normal;font-size:38px;color:#ff7f9e;animation:heartFly 1.8s ease-out infinite}.flying-hearts i:nth-child(2){animation-delay:.2s}.flying-hearts i:nth-child(3){animation-delay:.4s}.flying-hearts i:nth-child(4){animation-delay:.6s}.flying-hearts i:nth-child(5){animation-delay:.8s}.flying-hearts i:nth-child(6){animation-delay:1s}.spark-message{position:absolute;left:65%;top:29%;font-size:62px;animation:messagePop .8s .7s both}
@keyframes lampSway{50%{transform:rotate(2deg)}}@keyframes planetBob{50%{transform:translateY(-4px) rotate(2deg)}}@keyframes glowPulse{50%{transform:scale(1.08);opacity:.75}}@keyframes confettiFall{to{top:110%;transform:rotate(220deg) translateX(30px)}}@keyframes coinDrop{0%{transform:translateY(-40px) rotateY(0);opacity:0}20%{opacity:1}100%{transform:translateY(260px) rotateY(540deg);opacity:.2}}@keyframes clockSpin{0%{transform:scale(.2) rotate(-180deg)}100%{transform:scale(1) rotate(0)}}@keyframes laptopClose{55%{transform:rotateX(0)}100%{transform:perspective(500px) rotateX(-82deg)}}@keyframes flowerPop{from{transform:scale(.1) rotate(-60deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}@keyframes tableBloom{to{transform:translate(-50%,-50%) scaleX(1)}}@keyframes dishBloom{from{transform:translateY(70px) scale(.1);opacity:0}to{transform:none;opacity:1}}@keyframes cloudBreathe{50%{transform:translate(-50%,-53%) scale(1.04)}}@keyframes zzzFloat{to{transform:translate(40px,-65px) scale(1.25);opacity:0}}@keyframes beachOpen{to{transform:scale(1)}}@keyframes caseOpen{0%{transform:scale(.5) rotate(-10deg)}100%{transform:scale(1) rotate(0)}}@keyframes planeFly{to{left:105%;top:3%;transform:rotate(-12deg)}}@keyframes giftPop{from{transform:translate(-50%,-50%) scale(.1) rotate(-20deg)}to{transform:translate(-50%,-50%) scale(1) rotate(0)}}@keyframes sparkShoot{from{opacity:0;height:0}to{opacity:1;height:70px}}@keyframes ribbonFly{from{transform:translate(-80px,80px) rotate(-100deg);opacity:0}to{transform:translate(50px,-45px) rotate(50deg);opacity:1}}@keyframes familyGather{from{transform:translateY(90px);opacity:0}to{transform:none;opacity:1}}@keyframes heartBeat{50%{transform:scale(1.25)}}@keyframes heartFly{0%{transform:translate(-50%,-20%) scale(.2);opacity:0}30%{opacity:1}100%{transform:translate(calc(-170px + 55px * var(--n,1)),-190px) rotate(25deg);opacity:0}}@keyframes messagePop{from{transform:scale(.1) rotate(-25deg);opacity:0}to{transform:scale(1);opacity:1}}
@media(max-width:760px){.ceiling-lamp{left:43%;transform:scale(.72);transform-origin:top}.pinboard{display:none}.chair{left:-5%;bottom:-2vh;transform:scale(.72)}.keyboard{left:29%;transform:scale(.67) perspective(80px) rotateX(35deg);transform-origin:bottom}.mouse{left:52%;transform:scale(.7)}.desk-lamp{right:28%;transform:scale(.7);transform-origin:bottom}.rocket-wrap{right:1%;bottom:15%;transform:scale(.82);transform-origin:bottom right}.welcome-panel{top:3%;left:3%;width:94%;padding:18px 18px 20px;background:linear-gradient(120deg,rgba(45,38,105,.88),rgba(45,38,105,.46));border-radius:22px}.welcome-panel h1{font-size:clamp(21px,5.9vw,29px);line-height:1.25;max-width:100%}.welcome-panel .eyebrow{margin-bottom:10px}.welcome-panel .primary-btn{margin-top:16px}.hint{margin-top:13px}.picker-panel{inset:1.5vh 8px auto}.picker-panel h2{font-size:21px}.picker-panel .picker-sub{font-size:12px}.wish-orbit{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 8px;margin-top:8px}.wish-btn{min-height:130px}.wish-btn:before{width:86px;height:86px}.wish-btn:after{width:107px;height:28px;border-width:5px;top:29px}.wish-icon{width:55px;height:55px;margin-top:15px}.wish-label{top:91px;min-width:100px;max-width:145px;padding:6px 8px;font-size:10.5px}.celebration-stage{height:390px;width:100vw;transform:scale(.78)}.celebration-title{bottom:7vh;font-size:18px}.big-clock{left:6%}.closing-laptop{right:5%}.family-table{transform:translate(-50%,-50%) scale(.78)}.banquet-table{transform:translate(-50%,-50%) scaleX(.2) scale(.8)}.travel-case{top:55%}.final-panel{background:linear-gradient(115deg,rgba(24,19,67,.72),rgba(24,19,67,.2));padding:18px;border-radius:22px}#app[data-scene="final"] .rocket-wrap{transform:scale(.62) rotate(8deg)}}
@media(max-width:380px),(max-height:700px){.welcome-panel h1{font-size:20px}.rocket-wrap{bottom:12%;transform:scale(.68)}.wish-btn{min-height:112px}.wish-btn:before{width:74px;height:74px}.wish-btn:after{width:92px;height:24px;top:25px}.wish-icon{width:47px;height:47px;margin-top:13px}.wish-label{top:79px}.celebration-stage{transform:scale(.68)}}
@media(prefers-reduced-motion:reduce){.ceiling-lamp,.wish-icon,.celebration-glow,.soft-confetti i,.celebration-stage *{animation:none!important}.celebration-stage{opacity:1}.coin-rain i{top:35%}.travel-case,.gift-burst,.crush-gift{transform:translate(-50%,-50%)}}

/* V3 art direction: cosmic opening, cozy Nexa office and gentler interactions */
.intro-scene{background:
  radial-gradient(ellipse at 18% 22%,rgba(0,203,247,.24),transparent 30%),
  radial-gradient(ellipse at 78% 70%,rgba(121,83,218,.32),transparent 34%),
  radial-gradient(ellipse at 55% 34%,rgba(238,101,155,.17),transparent 23%),
  linear-gradient(155deg,#020817 0%,#061630 43%,#170c35 100%)}
.intro-scene:before,.intro-scene:after{content:"";position:absolute;inset:-12%;pointer-events:none}
.intro-scene:before{background:
  radial-gradient(circle at 8% 19%,#fff 0 1px,transparent 1.8px),
  radial-gradient(circle at 35% 71%,#aaf3ff 0 1px,transparent 1.8px),
  radial-gradient(circle at 76% 17%,#fff 0 1.2px,transparent 2px),
  radial-gradient(circle at 88% 79%,#ffe6f1 0 1px,transparent 1.8px);
  background-size:91px 91px,137px 137px,113px 113px,157px 157px;opacity:.72;animation:starDrift 16s linear infinite}
.intro-scene:after{inset:8% 5%;border-radius:50%;background:conic-gradient(from 210deg at 50% 50%,transparent,rgba(80,211,255,.11),rgba(232,99,188,.13),transparent 64%);filter:blur(34px);animation:nebulaTurn 22s linear infinite}
.quote-wrap{position:relative;z-index:2}.quote{font-size:clamp(25px,5.5vw,52px);line-height:1.36;text-shadow:0 3px 22px rgba(115,214,255,.2)}
.credit{color:#c5d6e8}.intro-continue{z-index:3;color:#f8fbff;border-color:rgba(137,227,255,.48);background:linear-gradient(120deg,rgba(0,100,252,.22),rgba(188,94,223,.19));box-shadow:0 0 28px rgba(0,203,247,.15),0 10px 30px rgba(0,0,0,.3)}

.wall-glow{background:
  linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),
  linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),
  radial-gradient(circle at 72% 31%,rgba(255,210,151,.3),transparent 36%),
  linear-gradient(180deg,#7771bb,#575398 70%,#46427c);background-size:38px 38px,38px 38px,auto,auto}
.wall-dots{position:absolute;inset:0;background:radial-gradient(circle at 16% 50%,rgba(255,255,255,.3) 0 2px,transparent 3px),radial-gradient(circle at 62% 16%,rgba(255,224,151,.35) 0 2px,transparent 3px);background-size:110px 110px,150px 150px;opacity:.42}
.wall-note{position:absolute;z-index:2;display:grid;place-items:center;text-align:center;color:#45355f;border:3px solid rgba(69,53,95,.55);box-shadow:5px 7px 0 rgba(30,23,70,.13);font-family:ui-rounded,"Arial Rounded MT Bold",system-ui,sans-serif;transform:rotate(-4deg)}
.wall-note b{font-size:12px;letter-spacing:.04em}.wall-note span{font-size:8px}.note-a{left:29%;top:15%;width:92px;height:70px;background:#ffde70}.note-b{left:39%;top:27%;width:106px;height:76px;background:#f7a9bd;transform:rotate(3deg)}.note-b b{font-size:20px}.note-c{left:4.5%;top:55%;width:112px;height:70px;background:#9fe3d2;transform:rotate(-2deg)}
.pinboard{top:10%;left:14%}.poster{top:38%;left:5%}.shelf{top:14%}
.desk{left:5vw;right:5vw;bottom:5vh;height:32vh}.desk-edge{height:43px;background:linear-gradient(#f6bd78,#c6794f);box-shadow:inset 0 5px rgba(255,255,255,.19)}
.laptop{left:20%;width:230px;height:140px}.laptop .screen{padding:0;display:grid;place-items:center;background:linear-gradient(145deg,#172f59,#253c70);overflow:hidden}
.mail-app{position:relative;width:84%;height:76%;border-radius:10px;background:linear-gradient(145deg,#f6fbff,#d9f4ff);display:grid;grid-template-columns:52px 1fr;grid-template-rows:1fr 1fr;align-items:center;padding:12px;color:#092c51;font-family:ui-rounded,"Arial Rounded MT Bold",system-ui,sans-serif;box-shadow:0 8px 0 rgba(1,100,252,.18);animation:mailGlow 2.7s ease-in-out infinite}
.mail-app:before{content:"1";position:absolute;right:-7px;top:-9px;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#ff6f92;color:white;font-size:12px;font-weight:900;box-shadow:0 0 0 4px rgba(255,111,146,.22);animation:mailPing 2.7s ease-in-out infinite}
.mail-envelope{grid-row:1/3;width:44px;height:34px;border:4px solid #0064fc;border-radius:6px;background:#fff;position:relative;animation:mailBounce 2.7s ease-in-out infinite}.mail-envelope:after,.mail-envelope:before{content:"";position:absolute;width:25px;height:4px;background:#0064fc;top:10px}.mail-envelope:before{left:-1px;transform:rotate(31deg)}.mail-envelope:after{right:-1px;transform:rotate(-31deg)}
.mail-app b{font-size:12px;align-self:end}.mail-app small{font-size:7px;align-self:start;color:#52708d}.laptop>b{width:270px}
.coffee{left:12%;width:82px;height:78px;background:transparent;border-radius:0;display:block}.coffee svg{width:84px;height:72px;filter:drop-shadow(0 7px 4px rgba(40,29,70,.18))}.coffee b{display:none}.steam{top:-28px}.s1{left:28px}.s2{left:48px}
.plant{right:auto;left:45%;width:88px;height:116px}.plant b{background:linear-gradient(#ffad82,#e67a6b);box-shadow:inset 0 5px rgba(255,255,255,.18)}
.chair{left:15%;bottom:0;transform:none}.sticky.st1{left:5%;bottom:calc(34% + 6px)}.sticky.st2{left:55%;bottom:calc(34% + 8px)}
.rocket-wrap{right:6%;bottom:18%;width:250px;height:335px;filter:drop-shadow(0 0 22px rgba(1,203,247,.3)) drop-shadow(0 20px 18px rgba(9,18,54,.24))}
.rocket-wrap:before{content:"";position:absolute;inset:15% -8% 1%;border-radius:50%;background:radial-gradient(circle,rgba(93,233,134,.18),rgba(1,203,247,.13) 38%,transparent 70%);filter:blur(12px);animation:rocketAura 3.4s ease-in-out infinite}
.rocket{transform:scale(1.32);left:54px}.rocket-slogan{position:absolute;z-index:4;left:7px;top:142px;width:65px;color:#052542;font:800 4.6px/1.25 ui-rounded,system-ui,sans-serif;letter-spacing:.01em;text-align:center}.brand{top:91px;width:57px;height:46px}
.welcome-panel{top:5%;left:5%;width:min(48vw,680px);padding:22px 25px 24px;background:linear-gradient(125deg,rgba(22,33,81,.88),rgba(55,44,118,.57));border:1px solid rgba(169,235,255,.22);box-shadow:0 22px 55px rgba(23,17,68,.2)}
.welcome-panel h1{font-size:clamp(23px,3vw,44px);line-height:1.2}.special-2010{display:inline-flex;align-items:center;gap:8px;margin-bottom:13px;padding:9px 14px;border-radius:999px;background:linear-gradient(120deg,#ff6f9f,#8b66dd 55%,#00bde8);color:#fff;box-shadow:0 0 24px rgba(255,116,171,.25);letter-spacing:.09em}.special-2010 span{color:#fff6b4}
.wish-cta{position:relative;overflow:hidden;background:linear-gradient(115deg,#6f4cd2,#d964b5 48%,#00cbed);color:#fff;box-shadow:0 7px 0 #3d388a,0 0 30px rgba(0,203,247,.28);margin-top:18px}.wish-cta:before{content:"";position:absolute;inset:-70% -30%;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);animation:wishShine 2.8s ease-in-out infinite}.wish-cta span{position:relative;color:#fff2a3;animation:starTwinkle 1.4s ease-in-out infinite}.hint{display:none}
.wish-btn{animation:bubbleSway 4.4s ease-in-out infinite}.wish-btn:nth-child(2n){animation-delay:-1.1s}.wish-btn:nth-child(3n){animation-delay:-2.2s}.wish-btn:nth-child(4n){animation-delay:-3.3s}
.wish-card h2{font-family:ui-rounded,"Arial Rounded MT Bold","Trebuchet MS",system-ui,sans-serif;font-size:clamp(25px,5vw,38px);font-weight:900;line-height:1.22;letter-spacing:-.02em;color:#513668}.wish-message{font-family:ui-rounded,"Arial Rounded MT Bold","Trebuchet MS",system-ui,sans-serif}
#app[data-scene="launch"] .rocket{animation:rumbleSoft .13s linear 14}
.captain-card{width:min(94vw,480px)}.captain-card h3{font-family:ui-rounded,"Arial Rounded MT Bold",system-ui,sans-serif}.captain-card>p{max-width:390px;margin:0 auto}.captain-cup{width:33px;height:27px!important;border:4px solid #4c4174!important;border-radius:4px 4px 10px 10px!important;background:#fff0dc!important;right:-22px!important;top:-21px!important;transform:rotate(37deg)!important}.captain-cup:after{content:"";position:absolute;right:-12px;top:4px;width:10px;height:11px;border:3px solid #4c4174;border-left:0;border-radius:0 8px 8px 0}
.captain-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.captain-actions .primary-btn,.captain-actions .secondary-btn,.captain-response .primary-btn{margin:0;min-height:50px;padding:11px 12px;border-radius:16px;font-size:12px}.secondary-btn{border:2px solid #6a5686;background:#fff;color:#5b4778;font-weight:850;cursor:pointer;box-shadow:0 5px 0 #cfc2d9}.captain-response{margin-top:18px;padding:15px;border-radius:18px;background:#fff3c9;border:2px dashed #e29b62}.captain-response p{font-weight:850}.captain-response .primary-btn{margin-top:12px}.captain-actions[hidden],.captain-response[hidden]{display:none!important}

@keyframes starDrift{50%{transform:translate3d(1.5%,-1%,0)}}@keyframes nebulaTurn{to{transform:rotate(360deg)}}@keyframes mailGlow{50%{box-shadow:0 8px 0 rgba(1,100,252,.18),0 0 18px rgba(1,203,247,.35)}}@keyframes mailPing{0%,45%,100%{transform:scale(1)}55%{transform:scale(1.25)}}@keyframes mailBounce{0%,46%,100%{transform:translateY(0)}56%{transform:translateY(-7px) rotate(-3deg)}}@keyframes rocketAura{50%{transform:scale(1.06);opacity:.75}}@keyframes wishShine{0%,36%{transform:translateX(-75%) rotate(8deg)}65%,100%{transform:translateX(75%) rotate(8deg)}}@keyframes starTwinkle{50%{transform:rotate(20deg) scale(1.25);filter:drop-shadow(0 0 7px white)}}@keyframes bubbleSway{0%,100%{transform:translateY(0) rotate(-.7deg)}50%{transform:translateY(-5px) rotate(.9deg)}}@keyframes rumbleSoft{0%,100%{transform:translate(0,0) rotate(0)}33%{transform:translate(.8px,-.6px) rotate(.35deg)}66%{transform:translate(-.7px,.5px) rotate(-.3deg)}}

@media(max-width:760px){
  .quote-wrap{padding:22px}.quote{font-size:clamp(24px,7vw,33px)}.intro-continue{bottom:max(25px,env(safe-area-inset-bottom));max-width:88vw;font-size:12px}
  .window{right:-10%;top:38%;width:52%;height:31%;border-width:8px}.ceiling-lamp{left:50%;top:34%;transform:scale(.58)}
  .shelf,.poster{display:block;transform:scale(.58);transform-origin:left top}.shelf{left:3%;top:44%}.poster{left:4%;top:57%}.pinboard{display:block;left:31%;top:43%;transform:scale(.62) rotate(2deg);transform-origin:left top}
  .wall-note{transform:scale(.68) rotate(-3deg);transform-origin:left top}.note-a{left:4%;top:35%}.note-b{left:35%;top:36%}.note-c{display:none}
  .desk{left:-2%;right:-2%;bottom:1.5%;height:29%}.desk-edge{bottom:31%;height:31px}.leg{bottom:-24%;height:55%}.chair{left:2%;bottom:-1%;transform:scale(.62);transform-origin:bottom left}
  .laptop{left:18%;bottom:calc(31% + 21px);transform:scale(.55);transform-origin:bottom left}.coffee{left:3%;bottom:calc(31% + 18px);transform:scale(.61);transform-origin:bottom left}.plant{left:48%;bottom:calc(31% + 20px);transform:scale(.62);transform-origin:bottom left}.keyboard{left:22%;bottom:calc(31% + 4px);transform:scale(.47) perspective(80px) rotateX(35deg);transform-origin:bottom left}.mouse{left:49%;bottom:calc(31% + 5px);transform:scale(.52)}.desk-lamp{display:none}.sticky{display:none}
  .rocket-wrap{right:-4%;bottom:7%;width:220px;height:300px;transform:scale(.73);transform-origin:bottom right}.rocket{left:50px;transform:scale(1.28)}
  .welcome-panel{top:1.5%;left:3%;width:94%;padding:13px 15px 14px;border-radius:20px;background:linear-gradient(125deg,rgba(14,25,69,.91),rgba(61,43,121,.72));backdrop-filter:blur(7px)}.welcome-panel h1{font-size:clamp(18px,5.1vw,23px);line-height:1.22;max-width:100%}.welcome-panel .eyebrow{margin-bottom:8px}.special-2010{padding:7px 10px;font-size:9px}.welcome-panel .primary-btn{margin-top:11px;min-height:49px;padding:12px 20px}.wish-cta{font-size:15px}
  .captain-card{padding:17px 15px 20px}.captain-card>p{font-size:13px}.captain-actions{grid-template-columns:1fr}.captain{transform:scale(.72);height:137px}.captain-response{padding:12px}
}
@media(max-width:360px){
  .welcome-panel h1{font-size:17px}.special-2010{font-size:8px}.rocket-wrap{right:-8%;bottom:6%;transform:scale(.67)}.window{top:41%;height:28%}.note-b{display:none}.laptop{left:17%;transform:scale(.5)}.coffee{left:1%;transform:scale(.55)}.plant{left:49%;transform:scale(.56)}
  .captain-card h3{font-size:19px}.captain-card>p{font-size:12px;line-height:1.4}
}
@media(prefers-reduced-motion:reduce){.intro-scene:before,.intro-scene:after,.mail-app,.mail-app:before,.mail-envelope,.rocket-wrap:before,.wish-cta:before,.wish-cta span,.wish-btn{animation:none!important}}

/* V4 office details, reliable hit targets and replay flow */
.clock-note{padding:0;background:#f5a9bd}.office-clock{position:relative;display:block;width:58px;height:58px;border:5px solid #4d3d6e;border-radius:50%;background:#fff8e5;box-shadow:inset 0 0 0 3px #f6d8aa,0 5px 0 rgba(62,45,94,.18)}.office-clock:before{content:"";position:absolute;left:50%;top:7px;width:3px;height:7px;border-radius:3px;background:#d0677c;transform:translateX(-50%);box-shadow:0 34px #d0677c}.office-clock:after{content:"";position:absolute;left:7px;top:50%;width:7px;height:3px;border-radius:3px;background:#d0677c;transform:translateY(-50%);box-shadow:34px 0 #d0677c}.office-clock i,.office-clock b{position:absolute;left:50%;top:50%;display:block;width:4px;border-radius:4px;background:#4d3d6e;transform-origin:50% 100%}.office-clock i{height:17px;transform:translate(-50%,-100%) rotate(4deg)}.office-clock b{height:14px;transform:translate(-50%,-100%) rotate(126deg)}.office-clock b:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#f07f8f;left:-2px;bottom:-4px}
.poster b{max-width:100px;margin:4px auto 0;font-size:6.5px;line-height:1.35;letter-spacing:.04em;color:#235083}.pinboard b{font-family:ui-rounded,"Arial Rounded MT Bold",system-ui,sans-serif;letter-spacing:.04em}
.rocket-wrap{appearance:none;border:0;background:transparent;padding:0;color:inherit;font:inherit;text-align:initial;pointer-events:none}.rocket-wrap:focus-visible{outline:4px solid #fff4a8;outline-offset:4px;border-radius:42%}.rocket-wrap:before,.rocket-wrap *{pointer-events:none}#app[data-scene="welcome"] .rocket-wrap{pointer-events:auto;cursor:pointer}
.rocket-hint{position:absolute;z-index:19;right:19%;bottom:54%;width:min(290px,42vw);padding:13px 17px;border-radius:20px 20px 6px 20px;background:#fff8e9;color:#3d315f;border:3px solid #66538d;box-shadow:0 10px 0 rgba(44,31,87,.18),0 18px 34px rgba(30,21,66,.22);font:850 13px/1.35 ui-rounded,"Arial Rounded MT Bold",system-ui,sans-serif;text-align:center;animation:pop .35s var(--ease)}.rocket-hint:after{content:"";position:absolute;right:23px;bottom:-13px;width:20px;height:20px;background:#fff8e9;border-right:3px solid #66538d;border-bottom:3px solid #66538d;transform:rotate(45deg)}.rocket-hint[hidden]{display:none!important}
.windshield{top:34px}.rocket-display{z-index:5;left:50%;right:auto;top:7px;min-width:48px;text-align:center;transform:translateX(-50%)}.brand{left:50%;top:111px;width:39px;height:30px;transform:translateX(-50%);border-radius:7px}.brand img{width:390%;height:390%;left:-145%;top:-150%}
.final-panel{z-index:18;isolation:isolate;pointer-events:auto}.final-panel footer{margin:17px 0 0;max-width:610px;line-height:1.5}.final-panel #nextWish{position:relative;z-index:4;display:flex;align-items:center;justify-content:center;width:min(100%,520px);min-width:0;touch-action:manipulation;pointer-events:auto}.final-panel #nextWish:before{content:"";position:absolute;inset:-4px;border-radius:22px;pointer-events:none}#app[data-scene="final"] .rocket-wrap{pointer-events:none!important}

@media(max-width:760px){.rocket-hint{right:4%;bottom:41%;width:58vw;max-width:230px;font-size:11px;padding:11px 13px}.poster b{font-size:6px}.final-panel footer{margin-top:13px;font-size:11px}.final-panel #nextWish{width:100%;min-height:62px}.windshield{top:34px}.brand{top:111px}.rocket-display{top:7px}}
@media(max-width:360px){.note-b.clock-note{display:grid;left:36%;top:37%;transform:scale(.58) rotate(2deg)}.rocket-hint{right:3%;bottom:40%;width:61vw}.final-panel #nextWish{font-size:14px}}

/* V5: keep the Nexa mark fully visible between the windshield and hatch */
.brand{top:100px;width:34px;height:26px;border-radius:6px}
@media(max-width:760px){.brand{top:100px;width:34px;height:26px}}
