:root{--modal-bg: rgba(255, 255, 255, .95);--text-color: #333}body{margin:0;padding:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;overflow:hidden;background:url(/assets/bg-CC20RWh4.png) no-repeat center center fixed;background-size:cover;height:100vh;width:100vw;color:#fff}#app{position:relative;width:100%;height:100%}.snowflake{position:absolute;top:-20px;background-color:#fff;border-radius:50%;opacity:.8;pointer-events:none;animation:fall linear infinite;filter:blur(1px)}@keyframes fall{to{transform:translateY(105vh)}}.door-object{position:absolute;cursor:pointer;transition:transform .3s ease,filter .3s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;width:80px;height:80px}.door-object:hover{transform:scale(1.15);filter:drop-shadow(0 0 15px rgba(255,215,0,.8));z-index:20}.door-object.locked{filter:grayscale(.8) brightness(.7);cursor:not-allowed}.door-object.locked:hover{transform:none;filter:grayscale(.8) brightness(.7)}.door-number{font-size:1.4rem;font-weight:900;color:#fff;text-shadow:2px 2px 4px #000;background:#00000080;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;margin-bottom:-10px;z-index:2;border:2px solid rgba(255,255,255,.3)}.door-icon{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 5px rgba(0,0,0,.5))}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;justify-content:center;align-items:center;z-index:100;opacity:0;pointer-events:none;transition:opacity .3s ease}.modal-overlay.active{opacity:1;pointer-events:auto}.modal-content{background:var(--modal-bg);color:var(--text-color);padding:2.5rem;border-radius:20px;max-width:500px;width:90%;text-align:center;position:relative;box-shadow:0 20px 50px #00000080;transform:scale(.9);transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.modal-overlay.active .modal-content{transform:scale(1)}.close-btn{position:absolute;top:15px;right:20px;font-size:2rem;cursor:pointer;background:none;border:none;color:#888;transition:color .2s}.close-btn:hover{color:#333}.modal-image{max-width:100%;max-height:300px;border-radius:12px;margin-bottom:1.5rem;box-shadow:0 5px 15px #0000001a}.gift-hint{margin-top:1.5rem;padding:1rem;background-color:#fff8dc;border:2px dashed #daa520;border-radius:10px;font-weight:700;color:#8b4513}@media(max-width:600px){.door-object{width:60px;height:60px}.door-number{font-size:1rem;width:24px;height:24px}}.login-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:url(/assets/bg-CC20RWh4.png) no-repeat center center fixed;background-size:cover;display:flex;justify-content:center;align-items:center;z-index:1000;transition:opacity .5s ease}.login-overlay.hidden{opacity:0;pointer-events:none}.login-box{background:#fffffff2;padding:2.5rem;border-radius:15px;text-align:center;box-shadow:0 15px 35px #00000080;max-width:400px;width:90%;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-box h2{color:#2c3e50;margin-top:0;margin-bottom:1.5rem}.login-box input{width:100%;padding:12px;margin:15px 0;border:2px solid #ddd;border-radius:8px;font-size:1rem;box-sizing:border-box;outline:none;transition:border-color .3s}.login-box input:focus{border-color:#e74c3c}.login-box button{background:#e74c3c;color:#fff;border:none;padding:12px 20px;font-size:1.1rem;border-radius:8px;cursor:pointer;transition:background .3s,transform .2s;width:100%;font-weight:700}.login-box button:hover{background:#c0392b;transform:translateY(-2px)}.error-msg{color:#e74c3c;margin-top:15px;font-size:.9rem;display:none;font-weight:700}
