@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Playfair+Display:ital,wght@0,600;0,700;1,600&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";:root{color:#f9f5ff;background:#0b0612;font-family:Plus Jakarta Sans,sans-serif}*{box-sizing:border-box}body{background:#0b0612;min-width:320px;margin:0}.app{isolation:isolate;background:radial-gradient(circle at 7% 8%,#35164f 0,#0000 30%),radial-gradient(circle at 92% 82%,#21102e 0,#0000 35%),#0b0612;min-height:100dvh;padding:26px 20px 18px;position:relative;overflow:hidden}.grain{z-index:-1;opacity:.18;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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");position:absolute;inset:0}.stars{z-index:-1;opacity:.22;background-image:radial-gradient(#c5a6ff 1px,#0000 1.5px);background-size:88px 92px;position:absolute;inset:0}header,footer{justify-content:space-between;align-items:center;max-width:1000px;margin:auto;display:flex}.brand{color:#f7efff;text-align:left;letter-spacing:2px;cursor:pointer;background:0 0;border:0;padding:0;font:500 10px/1.05 DM Mono}.brand i{color:#b879ff;font-style:normal}.bat{color:#bd85ff;margin-right:4px;font-size:22px;display:inline-block}.progress{text-align:right;color:#c4b5d8;letter-spacing:1px;font:10px DM Mono}.progress div{background:#33263e;border-radius:4px;width:110px;height:3px;margin-top:8px}.progress b{background:#bd85ff;border-radius:4px;height:100%;transition:width .4s;display:block}.stage{max-width:540px;margin:8vh auto 5vh;animation:.55s both rise}.card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(135deg,#251830d1,#100a17bf);border:1px solid #d2b0ff2e;border-radius:24px;padding:34px 27px 28px;box-shadow:0 28px 70px #00000059}.eyebrow{color:#bc83ff;letter-spacing:1.7px;margin:0 0 14px;font:10px DM Mono}h1{letter-spacing:-1.8px;color:#fffaff;margin:0 0 19px;font:600 clamp(34px,9vw,52px)/.98 Playfair Display}.lede{color:#cfc4d8;margin:0 0 26px;font-size:14px;line-height:1.65}.center{text-align:center}label{color:#c4a8df;letter-spacing:1px;margin:15px 0;font:10px DM Mono;display:block}input,select{appearance:none;color:#fff;background:#08050c75;border:1px solid #52405f;border-radius:10px;outline:none;width:100%;margin-top:8px;padding:14px 15px;font:14px Plus Jakarta Sans}input:focus,select:focus{border-color:#bb7dff;box-shadow:0 0 0 3px #9d55e525}em{color:#756785;font-style:normal}.controls{justify-content:space-between;align-items:center;gap:12px;margin-top:26px;display:flex}.next,.back,.answer button,.option,.timing button{cursor:pointer;font:600 12px Plus Jakarta Sans}.next{color:#190b25;background:linear-gradient(135deg,#d19aff,#9254e0);border:0;border-radius:11px;margin-left:auto;padding:14px 17px;box-shadow:0 8px 24px #9b54d235}.next span{padding-left:8px;font-size:18px}.back{color:#bdaacd;background:0 0;border:0;padding:10px 0}.hint{letter-spacing:.4px;color:#786887;text-align:center;margin:19px 0 0;font:10px DM Mono}.error{color:#ffb5de;margin:16px 0 -8px;font-size:12px}.question-mark{color:#b86cff;text-align:center;text-shadow:0 0 45px #a04cff;font:italic 95px/.85 Playfair Display}.answer{gap:9px;margin:24px 0;display:grid}.answer button{color:#f8efff;background:#1e1428;border:1px solid #4d3b5b;border-radius:10px;padding:14px;transition:all .2s}.answer button:hover{background:#2c1a3b;border-color:#bd85ff}.notice{color:#c9b1dd;background:#160f20;border-left:2px solid #a260e3;margin:-8px 0 16px;padding:11px 12px;font:11px/1.5 DM Mono}.movie-list{max-height:182px;padding-right:3px;overflow:auto}.option{text-align:left;color:#f8f2ff;background:#0a060f66;border:1px solid #443350;border-radius:11px;align-items:center;gap:12px;width:100%;margin:8px 0;padding:13px;transition:all .2s;display:flex}.option:hover,.option.selected{background:#2c193b;border-color:#c084fc}.option i{color:#0e0914;text-align:center;opacity:0;background:#c58cff;border-radius:50%;width:18px;height:18px;margin-left:auto;font-style:normal;line-height:18px}.option.selected i{opacity:1}.poster{color:#e3c6ff;background:#5c2d82;border-radius:5px;place-items:center;width:31px;height:37px;display:grid}.option small{color:#a99ab4;margin-top:3px;font-weight:400;display:block}.grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.food-list{gap:7px;display:grid}.food span{color:#c28aff;font:10px DM Mono}.food b{font-size:13px}.timing{color:#c7aedb;background:#1b1025;border-radius:10px;flex-wrap:wrap;align-items:center;gap:7px;margin:14px 0 0;padding:12px;font:11px DM Mono;display:flex}.timing span{width:100%;margin-bottom:3px}.timing button{color:#d7c1eb;background:0 0;border:1px solid #604375;border-radius:7px;padding:8px}.timing .active{color:#fff;background:#5a3376;border-color:#c084fc}.ticket{color:#1e1129;clip-path:polygon(0 0,100% 0,100% 96%,96% 100%,92% 96%,88% 100%,84% 96%,80% 100%,76% 96%,72% 100%,68% 96%,64% 100%,60% 96%,56% 100%,52% 96%,48% 100%,44% 96%,40% 100%,36% 96%,32% 100%,28% 96%,24% 100%,20% 96%,16% 100%,12% 96%,8% 100%,4% 96%,0 100%);background:#f3ebfa;margin:5px 0 22px;padding:19px 18px}.ticket div{border-bottom:1px dashed #b4a1c2;justify-content:space-between;gap:15px;padding:9px 0;display:flex}.ticket div:last-child{border:0}.ticket span{color:#755c86;font:10px DM Mono}.ticket b{text-align:right;font-size:12px}.celebrate{color:#c180ff;justify-content:center;align-items:center;gap:24px;margin:23px;font-size:21px;display:flex}.cat{color:#f7e8ff;text-shadow:0 0 34px #ad5dff;font-size:65px;animation:1.6s ease-in-out infinite bob}.signature{color:#ba85ef;text-align:center;margin-top:29px;font:italic 23px Playfair Display}footer{color:#79668b;letter-spacing:1px;font:9px DM Mono}footer span:nth-child(2){color:#b075ed}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes bob{50%{transform:translateY(-10px)rotate(2deg)}}@media (width>=650px){.app{padding-top:35px}.card{padding:48px}.stage{margin-top:9vh}}@media (width<=390px){.app{padding:18px 14px}.card{padding:28px 20px}.grid{grid-template-columns:1fr}}.email-status{text-align:center;color:#bba9ca;margin:18px 0 0;font-size:12px;line-height:1.5}.email-status.sent{color:#d9b3ff}.butterfly-reveal{z-index:4;text-align:center;background:radial-gradient(circle,#451967f5,#0c0612fa);border-radius:24px;place-items:center;animation:1.8s forwards reveal-out;display:grid;position:absolute;inset:0;overflow:hidden}.butterfly-reveal span{filter:drop-shadow(0 0 13px #dfaeff);font-size:clamp(28px,8vw,54px);animation:1.5s ease-in both butterfly-flight;position:absolute}.butterfly-reveal span:first-child{animation-delay:50ms;bottom:15%;left:12%}.butterfly-reveal span:nth-child(2){animation-delay:.22s;bottom:8%;left:46%}.butterfly-reveal span:nth-child(3){animation-delay:.4s;bottom:25%;right:11%}.butterfly-reveal p{z-index:1;color:#fff6ff;text-shadow:0 3px 22px #12051d;font:italic 24px/1.25 Playfair Display,serif;animation:.45s .42s both message-in;position:relative}.calendar-button{color:#dfb8ff;letter-spacing:.4px;cursor:pointer;background:0 0;border:1px solid #a967e6;border-radius:8px;margin:3px auto 0;padding:8px 11px;font:11px DM Mono,monospace;display:block}.calendar-button:hover{color:#fff;background:#4b2468}@keyframes butterfly-flight{0%{opacity:0;transform:translate(-35px,55px)rotate(-30deg)scale(.35)}35%{opacity:1}to{opacity:0;transform:translate(90px,-290px)rotate(30deg)scale(1.1)}}@keyframes message-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes reveal-out{0%,76%{opacity:1}to{opacity:0}}
