*{margin:0;padding:0;box-sizing:border-box}body{font-family:Playfair Display,serif;overflow:hidden;background:radial-gradient(ellipse at bottom,#0f172a,#020617);color:#333;touch-action:pan-y;position:relative;min-height:100vh}#stars,#stars2,#stars3{position:fixed;top:0;left:0;width:1px;height:1px;background:transparent;pointer-events:none}#stars{box-shadow:779px 1331px #fff,324px 42px #fff,303px 586px #fff,1312px 276px #fff,451px 625px #fff,115px 1273px #fff,1529px 216px #fff,101px 1185px #fff,1739px 1207px #fff,1723px 1573px #fff,530px 1725px #fff,1280px 1743px #fff,1529px 647px #fff,1388px 1767px #fff,730px 1115px #fff,1300px 1917px #fff,1085px 1441px #fff,1222px 1786px #fff,1530px 1882px #fff,1160px 1376px #fff,1433px 1407px #fff,1738px 667px #fff,1032px 814px #fff,1258px 1617px #fff,906px 1539px #fff,1877px 1654px #fff,1363px 1127px #fff,1533px 503px #fff,1164px 390px #fff,1686px 1850px #fff,1667px 1763px #fff,1217px 1631px #fff,1521px 1344px #fff,1473px 1529px #fff,1644px 1869px #fff,344px 1510px #fff,1802px 1067px #fff,1926px 1633px #fff,1318px 1493px #fff,1945px 1088px #fff,1551px 1871px #fff,1683px 1512px #fff,1623px 1667px #fff,1430px 1741px #fff,1567px 1673px #fff,1868px 1278px #fff,1252px 1248px #fff,1953px 1561px #fff,1382px 1773px #fff,1851px 1929px #fff,234px 456px #fff,789px 234px #fff,1456px 789px #fff,567px 1234px #fff,890px 345px #fff,1123px 678px #fff,456px 1567px #fff,1678px 456px #fff,234px 1890px #fff,1345px 234px #fff,678px 1456px #fff,1890px 789px #fff,345px 1123px #fff,1567px 345px #fff,890px 1678px #fff,1234px 890px #fff,456px 234px #fff,1789px 1345px #fff,123px 1567px #fff,1456px 123px #fff,789px 1890px #fff,1345px 456px #fff,234px 789px #fff,1567px 1234px #fff,890px 567px #fff,1678px 890px #fff,345px 1345px #fff,1123px 234px #fff,567px 1678px #fff,1890px 456px #fff,234px 1123px #fff,1456px 567px #fff,789px 890px #fff,1234px 345px #fff,456px 1789px #fff,1567px 123px #fff,890px 1456px #fff,1345px 789px #fff,123px 234px #fff,1678px 1567px #fff,456px 890px #fff,1890px 1234px #fff,234px 345px #fff,1123px 1456px #fff,789px 123px #fff,1456px 1890px #fff,567px 456px #fff,1234px 1123px #fff,890px 1789px #fff,1567px 234px #fff,345px 567px #fff,1789px 890px #fff,123px 1345px #fff,1456px 456px #fff,678px 1234px #fff,1890px 123px #fff,234px 1567px #fff,1345px 890px #fff,567px 234px #fff,1123px 1678px #fff,789px 345px #fff,1678px 1123px #fff,456px 1456px #fff,1234px 567px #fff,890px 1890px #fff,1567px 789px #fff,234px 1234px #fff,1456px 345px #fff,789px 1567px #fff,1345px 123px #fff,123px 890px #fff,1890px 1456px #fff,456px 678px #fff,1123px 234px #fff,678px 1789px #fff,1789px 567px #fff,345px 1890px #fff,1567px 456px #fff,890px 1123px #fff,1234px 1678px #fff,456px 345px #fff,1678px 234px #fff,234px 1456px #fff,1456px 1234px #fff,789px 567px #fff,1123px 890px #fff,567px 1345px #fff,1890px 678px #fff,345px 123px #fff,1345px 1567px #fff,123px 456px #fff,1567px 1890px #fff,890px 234px #fff,1234px 789px #fff,678px 345px #fff,1789px 1123px #fff,456px 1567px #fff,234px 890px #fff,1456px 678px #fff,789px 1234px #fff;animation:animStar 100s linear infinite;z-index:0}#stars2{width:2px;height:2px;box-shadow:1564px 1773px #fff,351px 1698px #fff,1698px 1049px #fff,1888px 1338px #fff,1104px 1724px #fff,1675px 1194px #fff,1426px 1600px #fff,311px 1768px #fff,1814px 1336px #fff,1279px 1638px #fff,1915px 1379px #fff,1371px 1197px #fff,1696px 1441px #fff,1289px 1776px #fff,1591px 1677px #fff,1344px 1705px #fff,1801px 1634px #fff,1534px 1731px #fff,1660px 1692px #fff,1762px 1376px #fff,1801px 1229px #fff,1895px 1669px #fff,1720px 1306px #fff,1814px 1755px #fff,1904px 1655px #fff,1601px 1454px #fff,1654px 1713px #fff,1867px 1445px #fff,1859px 1639px #fff,1818px 1728px #fff,423px 876px #fff,1267px 543px #fff,789px 1432px #fff,1543px 321px #fff,234px 1654px #fff,1876px 987px #fff,456px 234px #fff,1654px 876px #fff,987px 1543px #fff,1234px 654px #fff,543px 1876px #fff,1765px 432px #fff,321px 1234px #fff,1432px 765px #fff,876px 321px #fff,1654px 1098px #fff,234px 987px #fff,1543px 234px #fff,765px 1654px #fff,1987px 543px #fff,432px 1765px #fff,1234px 432px #fff,654px 1321px #fff,1876px 654px #fff,321px 876px #fff,1543px 1234px #fff,987px 765px #fff,234px 1432px #fff,1765px 987px #fff,543px 234px #fff,1321px 1543px #fff,876px 1876px #fff,1654px 321px #fff,432px 654px #fff,1234px 1765px #fff,765px 432px #fff,1876px 1234px #fff,321px 543px #fff,1543px 876px #fff,654px 1987px #fff,1987px 321px #fff,234px 765px #fff,1432px 1654px #fff,987px 234px #fff,543px 1432px #fff,1765px 543px #fff,432px 1876px #fff,1234px 321px #fff,876px 1543px #fff,1654px 765px #fff,321px 1234px #fff,1543px 432px #fff,765px 987px #fff,1876px 234px #fff,234px 1765px #fff,1432px 876px #fff,654px 321px #fff,987px 1654px #fff,1765px 1432px #fff,543px 765px #fff,1234px 987px #fff,432px 1543px #fff,1876px 654px #fff,321px 1987px #fff,1654px 543px #fff,765px 1234px #fff,1543px 765px #fff,234px 432px #fff,987px 1876px #fff,1432px 234px #fff;animation:animStar 150s linear infinite;z-index:1}#stars3{width:3px;height:3px;box-shadow:1374px 1683px #fff,1617px 1799px #fff,1737px 1685px #fff,1683px 1729px #fff,1759px 1654px #fff,1651px 1765px #fff,1698px 1717px #fff,1784px 1691px #fff,1712px 1748px #fff,1745px 1702px #fff,1689px 1776px #fff,1723px 1731px #fff,1767px 1698px #fff,1701px 1742px #fff,1734px 1715px #fff,1656px 1789px #fff,1778px 1673px #fff,1718px 1756px #fff,1692px 1724px #fff,1751px 1687px #fff,432px 567px #fff,1234px 876px #fff,765px 1432px #fff,1543px 234px #fff,987px 1654px #fff,1876px 543px #fff,321px 1765px #fff,1654px 987px #fff,543px 321px #fff,1234px 1543px #fff,876px 765px #fff,1765px 432px #fff,234px 1876px #fff,1432px 654px #fff,654px 234px #fff,1543px 1234px #fff,321px 987px #fff,1876px 1432px #fff,987px 543px #fff,1234px 321px #fff,765px 1654px #fff,1654px 765px #fff,432px 1234px #fff,1765px 876px #fff,543px 1543px #fff,1432px 321px #fff,234px 654px #fff,1876px 987px #fff,876px 1765px #fff,1543px 432px #fff;animation:animStar 200s linear infinite;z-index:2}@keyframes animStar{0%{transform:translateY(0)}to{transform:translateY(-2000px)}}.screen{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;transition:opacity .5s ease;z-index:10}.hidden{opacity:0;visibility:hidden;pointer-events:none}#login-screen{background:radial-gradient(circle at center,#1a0a2e,#000);z-index:3000}.login-box{text-align:center;padding:40px;background:#ffffff1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:20px;box-shadow:0 10px 40px #0000004d;width:90%;max-width:360px;border:1px solid rgba(255,255,255,.2)}.login-title{font-size:36px;font-weight:700;color:pink;margin-bottom:10px;text-shadow:0 0 20px rgba(255,192,203,.6)}.subtitle{color:#ffffffb3;margin-bottom:30px;font-size:14px;font-style:italic}.input-wrapper{position:relative;display:flex;align-items:center;background:#ffffff1a;border-radius:50px;padding:5px;transition:all .3s ease;border:2px solid transparent}.input-wrapper:focus-within{border-color:#667eea;background:#ffffff26;box-shadow:0 0 20px #667eea4d}#password-input{border:none;background:transparent;padding:12px 20px;flex:1;outline:none;font-size:16px;color:#fff;font-family:inherit}#password-input::placeholder{color:#ffffff80}#login-btn{border:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;box-shadow:0 4px 15px #764ba266}#login-btn:hover{transform:scale(1.1);box-shadow:0 6px 20px #764ba299}#login-btn:active{transform:scale(.95)}.error-msg{color:#ff6b6b;font-size:14px;margin-top:15px;min-height:20px;opacity:0;transition:opacity .3s ease}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-8px)}20%,40%,60%,80%{transform:translate(8px)}}.shake-animation{animation:shake .4s cubic-bezier(.36,.07,.19,.97)}#entrance-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at center,#1a0a2e,#000);display:flex;align-items:center;justify-content:center;z-index:2000;cursor:pointer;transition:opacity 1s ease}.entrance-content{text-align:center;animation:float 3s ease-in-out infinite;padding:0 20px}.entrance-title{font-size:36px;font-weight:400;line-height:1.6;max-width:800px;margin-left:auto;margin-right:auto;background:linear-gradient(to bottom,#fff,#a5b4fc);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 20px rgba(165,180,252,.5);animation:glow 2s ease-in-out infinite,gradientShift 3s ease infinite;margin-bottom:0}.entrance-subtitle{font-size:36px;font-weight:400;line-height:1.6;background:linear-gradient(to bottom,#fff,#a5b4fc);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 20px rgba(165,180,252,.5);animation:glow 2s ease-in-out infinite,gradientShift 3s ease infinite;margin-bottom:60px}.entrance-hint{font-size:18px;color:#fff9;animation:pulse 2s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes glow{0%,to{text-shadow:0 0 15px rgba(165,180,252,.4)}50%{text-shadow:0 0 30px rgba(165,180,252,.7)}}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}#deck-container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;z-index:10}#card-stack{position:relative;width:min(400px,90vw);height:min(600px,70vh);perspective:1200px;margin-bottom:40px}.card{position:absolute;top:0;left:0;width:100%;height:100%;background:#0f172ad9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:20px;box-shadow:0 10px 40px #0006,0 0 0 1px #6366f133;display:flex;flex-direction:column;padding:15px;box-sizing:border-box;transition:transform .4s cubic-bezier(.175,.885,.32,1.275),opacity .4s ease,box-shadow .3s ease;cursor:grab;-webkit-user-select:none;user-select:none;transform-origin:center center}.card:active{cursor:grabbing}.card-number{position:absolute;top:15px;right:20px;font-size:14px;font-weight:600;color:#ff69b4;background:#ff69b41a;padding:5px 12px;border-radius:20px;z-index:10}.card-image-wrapper{flex:1;width:100%;display:flex;justify-content:center;align-items:center;background-color:#f8f9fa;border-radius:15px;overflow:hidden;margin-bottom:15px;box-shadow:inset 0 0 0 1px #0000000d}.card-image-wrapper.single{display:flex;justify-content:center;align-items:center}.card-image-wrapper.single .card-img-content{max-width:100%;max-height:100%;object-fit:contain;object-position:center;display:block;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.card-image-wrapper.multi{display:flex;padding:4px;box-sizing:border-box;gap:4px}.card-image-wrapper.multi.row{flex-direction:row}.card-image-wrapper.multi.col{flex-direction:column}.img-box{flex:1;position:relative;overflow:hidden;border-radius:4px;display:flex;justify-content:center;align-items:center;background-color:#eee}.img-box img{width:100%;height:100%;object-fit:cover;display:block}.card-img-placeholder{width:100%;height:100%;background-size:cover}.card-text{height:auto;min-height:60px;display:flex;align-items:center;justify-content:center;font-family:Dancing Script,cursive;color:#cbd5e1;font-size:clamp(18px,4vw,24px);text-align:center;line-height:1.4;padding:10px}.card.swiped-right{transform:translate(150%) rotate(25deg)!important;opacity:0!important;pointer-events:none}.card.swiped-left{transform:translate(-150%) rotate(-25deg)!important;opacity:0!important;pointer-events:none}.card.special{box-shadow:0 0 30px #667eea99,0 10px 40px #764ba24d;animation:specialPulse 1.5s ease-in-out infinite}@keyframes specialPulse{0%,to{box-shadow:0 0 30px #667eea99}50%{box-shadow:0 0 50px #667eea}}.deck-info{text-align:center;margin-bottom:30px}#card-counter{font-size:18px;color:#fffc;margin-bottom:10px;letter-spacing:2px;text-shadow:0 0 10px rgba(165,180,252,.3)}#progress-bar{width:min(300px,80vw);height:6px;background:#ffffff4d;border-radius:10px;overflow:hidden;box-shadow:inset 0 2px 5px #0000001a}#progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);width:0%;transition:width .5s ease;box-shadow:0 0 10px #667eeacc}.controls{display:flex;gap:30px;margin-bottom:20px}.control-btn{width:60px;height:60px;border:2px solid rgba(165,180,252,.3);background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:50%;color:#a5b4fc;font-size:24px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px #0000004d}.control-btn:hover{background:#fff3;border-color:#a5b4fc;color:#fff;transform:scale(1.1);box-shadow:0 6px 20px #a5b4fc66}.control-btn:active{transform:scale(.95)}.control-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none}.keyboard-hint{font-size:12px;color:#fff9;padding:8px 16px;background:#0000004d;border-radius:20px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.1)}.music-btn{position:fixed;top:30px;right:30px;width:50px;height:50px;border:2px solid rgba(165,180,252,.3);background:#0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:50%;font-size:24px;cursor:pointer;transition:all .3s ease;z-index:1000;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px #0000004d}.music-btn:hover{background:#667eea80;border-color:#667eea;transform:scale(1.1);box-shadow:0 6px 20px #667eea66}@media (max-width: 768px){.entrance-title,.entrance-subtitle{font-size:28px}#card-stack{width:95vw;height:75vh}.control-btn{width:50px;height:50px;font-size:20px}.controls{gap:20px}}@media (max-width: 480px){.entrance-title,.entrance-subtitle{font-size:22px}#card-stack{width:95vw;height:75vh}.card-text{font-size:18px}.letter-paper{padding:30px 20px;font-size:16px}}.card.envelope-card{background:#0f172a99;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(165,180,252,.2);box-shadow:0 0 40px #4f46e526,inset 0 0 20px #a5b4fc0d;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .5s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;border-radius:16px}.card.envelope-card:hover{transform:translateY(-8px);background:#1e293bbf;border-color:#a5b4fc66;box-shadow:0 20px 60px #7c3aed66,inset 0 0 30px #a5b4fc1a}.envelope-icon{width:130px;height:86px;background:linear-gradient(135deg,#1e293be6,#0f172a);position:relative;margin-bottom:30px;display:flex;justify-content:center;align-items:center;border-radius:4px;box-shadow:0 0 30px #6366f14d;border:1px solid rgba(165,180,252,.15);transition:transform .5s ease}.envelope-icon:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-left:65px solid transparent;border-right:65px solid transparent;border-top:50px solid rgba(165,180,252,.25);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10;transform-origin:top;transition:transform .6s cubic-bezier(.4,0,.2,1);filter:drop-shadow(0 4px 4px rgba(0,0,0,.2))}.envelope-icon:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:100%;border-left:65px solid transparent;border-right:65px solid transparent;border-bottom:45px solid rgba(99,102,241,.15);z-index:5;pointer-events:none}.card.envelope-card:hover .envelope-icon:before{transform:rotateX(180deg);border-top-color:#a5b4fc26}.card.envelope-card:hover .envelope-icon{transform:scale(1.05);box-shadow:0 0 50px #8b5cf699}#letter-screen{z-index:5000}.letter-paper{width:min(600px,90%);height:min(800px,85%);background:#0f172ad9;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);padding:60px;box-shadow:0 0 80px #4f46e540,inset 0 0 100px #0000004d;position:relative;overflow-y:auto;font-family:Songti SC,SimSun,serif;line-height:2.2;font-size:18px;color:#e2e8f0;text-shadow:0 0 2px rgba(165,180,252,.3);background-image:linear-gradient(rgba(148,163,184,.1) 1px,transparent 1px);background-size:100% 40px;border-radius:8px;border:1px solid rgba(165,180,252,.1)}.letter-paper::-webkit-scrollbar{width:6px}.letter-paper::-webkit-scrollbar-track{background:transparent}.letter-paper::-webkit-scrollbar-thumb{background:#6366f14d;border-radius:3px}.letter-paper::-webkit-scrollbar-thumb:hover{background:#6366f180}#letter-content{white-space:pre-wrap;min-height:100%}#close-letter-btn{position:absolute;top:15px;right:15px;width:30px;height:30px;border:none;background:#6366f133;font-size:20px;color:#e2e8f0;cursor:pointer;border-radius:50%;transition:all .2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#close-letter-btn:hover{background:#7c3aed66;color:#fff;transform:scale(1.1)}
