*{box-sizing:border-box;margin:0;padding:0}
:root{--blue:#268cff;--blue2:#6bb7ff;--deep:#050814;--white:#eef6ff}
html,body{width:100%;height:100%;overflow:hidden}
body{font-family:"DM Sans",sans-serif;background:#050814;color:var(--white);position:relative}
body:before{content:"";position:fixed;inset:0;background:
radial-gradient(circle at 50% 20%,rgba(31,116,255,.19),transparent 34%),
radial-gradient(circle at 20% 80%,rgba(0,180,255,.11),transparent 30%),
linear-gradient(145deg,#02040b,#071125 48%,#02050d);z-index:-5}
.aurora{position:fixed;width:65vw;height:65vw;filter:blur(65px);opacity:.16;border-radius:50%;pointer-events:none;z-index:-3}
.aurora-a{background:#087cff;top:-30vw;left:-20vw;animation:floatA 12s ease-in-out infinite alternate}
.aurora-b{background:#00b7ff;bottom:-35vw;right:-20vw;animation:floatB 15s ease-in-out infinite alternate}
@keyframes floatA{to{transform:translate(35vw,20vh) scale(1.15)}}
@keyframes floatB{to{transform:translate(-25vw,-18vh) scale(1.2)}}
.stars,.sparkles{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:-1}
.star{position:absolute;width:2px;height:2px;border-radius:50%;background:#bfe2ff;opacity:.55;animation:twinkle 3s ease-in-out infinite}
@keyframes twinkle{50%{opacity:.12;transform:scale(.45)}}
.spark{position:absolute;color:#7fc3ff;font-size:12px;animation:spark 5s linear infinite;opacity:0}
@keyframes spark{0%{transform:translateY(25vh) rotate(0);opacity:0}15%,75%{opacity:.5}100%{transform:translateY(-110vh) rotate(220deg);opacity:0}}
main{width:100%;height:100%;position:relative}
.scene{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:30px 22px;opacity:0;visibility:hidden;transform:translateY(20px) scale(.98);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.8,.2,1),visibility .65s}
.scene.active{opacity:1;visibility:visible;transform:none}
.eyebrow{font-size:9px;letter-spacing:4px;color:#91bde9;font-weight:700;display:flex;align-items:center;gap:10px}
.eyebrow span{display:block;width:24px;height:1px;background:linear-gradient(90deg,transparent,#5baaff)}
.orb{width:130px;height:130px;position:relative;margin:18px 0 20px;display:grid;place-items:center}
.orb-ring{position:absolute;border:1px solid rgba(91,170,255,.22);border-radius:50%;inset:8px;animation:spin 8s linear infinite}
.ring2{inset:-4px;border-style:dashed;animation:spin 13s linear infinite reverse;border-color:rgba(91,170,255,.12)}
@keyframes spin{to{transform:rotate(360deg)}}
.orb-heart{width:72px;height:72px;border-radius:24px;background:linear-gradient(145deg,rgba(42,145,255,.3),rgba(15,40,78,.3));border:1px solid rgba(126,194,255,.3);box-shadow:0 0 50px rgba(26,128,255,.22),inset 0 0 30px rgba(76,170,255,.08);display:grid;place-items:center;font-size:44px;color:#8dccff;animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{50%{transform:scale(1.07);box-shadow:0 0 75px rgba(26,128,255,.38)}}
h1,h2{font-family:"Playfair Display",serif;font-weight:600;letter-spacing:-1px;text-align:center}
h1{font-size:clamp(48px,15vw,76px);line-height:.9}
h1 em,h2 em{font-style:italic;color:#69b6ff}
.sub{max-width:300px;text-align:center;color:#9aaac0;font-size:13px;line-height:1.7;margin:22px 0 27px}
.primary,.ghost,.yes,.no{font-family:inherit;cursor:pointer;border:0;touch-action:manipulation}
.primary{padding:14px 22px;border-radius:16px;color:#fff;background:linear-gradient(135deg,#238dff,#1264ca);box-shadow:0 12px 35px rgba(19,120,255,.28),inset 0 1px rgba(255,255,255,.25);font-size:13px;font-weight:700;letter-spacing:.2px;transition:.25s}
.primary b{margin-left:13px;font-size:18px}
.primary:active{transform:scale(.96)}
.tiny{margin-top:17px;color:#4e627d;font-size:9px;letter-spacing:.4px}
.sound-btn{position:fixed;right:17px;top:17px;width:38px;height:38px;border-radius:50%;z-index:20;border:1px solid rgba(116,181,255,.18);background:rgba(5,14,29,.58);backdrop-filter:blur(12px);color:#8dc8ff;font-size:16px;cursor:pointer}
.letter-wrap{width:min(100%,350px);position:relative}
.letter-top{font-size:9px;letter-spacing:3px;color:#6583a4;margin:0 0 10px 4px;display:flex;justify-content:space-between}
.letter-top span{font-size:15px;color:#58aaff}
.letter{min-height:300px;padding:34px 27px;border:1px solid rgba(118,180,240,.16);background:linear-gradient(145deg,rgba(16,34,59,.72),rgba(6,13,25,.72));box-shadow:0 30px 70px rgba(0,0,0,.3),inset 0 1px rgba(255,255,255,.04);border-radius:4px 24px 4px 24px;position:relative;overflow:hidden}
.letter:after{content:"";position:absolute;width:130px;height:130px;right:-60px;bottom:-60px;border-radius:50%;border:1px solid rgba(81,164,255,.1)}
.line{height:1px;background:linear-gradient(90deg,#358fe5,transparent);width:55px;margin-bottom:25px}
.hand{font-family:"Playfair Display",serif;font-size:21px;line-height:1.65;color:#dcecff;min-height:170px}
.signature{font-size:10px;color:#63809e;letter-spacing:.5px;margin-top:15px}
.ghost{margin-top:22px;color:#7eb9ef;background:transparent;font-size:12px;letter-spacing:1px;padding:10px 20px}
.ghost span{font-size:18px;margin-left:7px}
.question-card{width:min(100%,390px);text-align:center;padding:32px 22px 25px;border:1px solid rgba(102,170,238,.15);border-radius:30px;background:linear-gradient(145deg,rgba(10,26,48,.82),rgba(4,10,20,.86));box-shadow:0 35px 80px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.05);position:relative;overflow:hidden}
.question-card:before{content:"";position:absolute;left:-60px;top:-80px;width:180px;height:180px;border-radius:50%;background:rgba(28,139,255,.12);filter:blur(20px)}
.mini-badge{font-size:8px;letter-spacing:3px;color:#639dd2}
.big-heart{font-size:34px;color:#56aaff;text-shadow:0 0 28px rgba(61,160,255,.4);margin:13px 0}
.pre{font-size:11px;color:#758ba5;margin-bottom:13px}
h2{font-size:clamp(27px,8vw,37px);line-height:1.15}
.choice-area{height:180px;position:relative;margin-top:22px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:38px;overflow:hidden;border-radius:18px;padding-top:4px}
.yes,.no{position:relative;padding:13px 17px;border-radius:13px;font-size:11px;font-weight:800;white-space:nowrap}
.yes{background:#e9f5ff;color:#0754a4;box-shadow:0 8px 28px rgba(41,147,255,.2);z-index:3}
.no{background:#101b2a;color:#8194aa;border:1px solid #203249;z-index:4;transition:left .22s ease,top .22s ease,transform .22s ease}
.tease{font-size:9px;color:#415a76;min-height:13px}
.celebrate-icon{width:86px;height:86px;border-radius:28px;background:linear-gradient(145deg,#228fff,#0b3c78);display:grid;place-items:center;font-size:45px;box-shadow:0 0 65px rgba(30,139,255,.42);margin-bottom:25px;animation:pop .8s cubic-bezier(.2,1.5,.3,1)}
@keyframes pop{0%{transform:scale(0) rotate(-20deg)}100%{transform:scale(1) rotate(0)}}
.celebrate h2{font-size:52px;margin:14px 0}
.result-text{color:#91a5bb;font-size:12px;line-height:1.8;text-align:center;max-width:290px}
.quote-box{position:relative;width:min(100%,300px);margin:22px 0;padding:17px 24px;border-top:1px solid rgba(94,166,238,.15);border-bottom:1px solid rgba(94,166,238,.15)}
.quote-box span{position:absolute;left:2px;top:8px;color:#3b92df;font-family:serif;font-size:28px}.quote-box .right{left:auto;right:2px;top:auto;bottom:-8px}
.quote-box p{font-family:"Playfair Display",serif;font-style:italic;color:#bdd8f3;font-size:14px;line-height:1.5}
.toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,15px);opacity:0;background:rgba(8,18,32,.94);border:1px solid rgba(86,164,238,.2);padding:10px 15px;border-radius:12px;color:#a9cbed;font-size:10px;z-index:50;transition:.3s;pointer-events:none;white-space:nowrap}
.toast.show{opacity:1;transform:translate(-50%,0)}
.confetti{position:fixed;inset:0;pointer-events:none;z-index:40;overflow:hidden}
.conf{position:absolute;top:-15px;width:7px;height:12px;animation:fall 2.8s linear forwards}
@keyframes fall{to{transform:translate3d(var(--x),110vh,0) rotate(720deg);opacity:0}}
@media(max-height:650px){.orb{width:95px;height:95px;margin:10px 0}.orb-heart{width:58px;height:58px;font-size:35px}.sub{margin:13px 0 18px}.letter{min-height:270px;padding:25px}.hand{font-size:18px}.question-card{padding:22px 18px}.celebrate h2{font-size:45px}}
