*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;position:fixed;overflow:hidden}body{font-family:SF Mono,Monaco,Inconsolata,Fira Code,Fira Mono,Roboto Mono,Courier New,monospace;background:#000;color:#fff}.password-gate{position:fixed;top:0;left:0;width:100%;height:100%;background:#0a0a0a;display:flex;justify-content:center;align-items:center;z-index:10000;opacity:1;transition:opacity .8s ease}.password-gate.unlocked{opacity:0;pointer-events:none}.password-container{background:#1e1e1ecc;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:40px 35px;max-width:400px;width:90%;text-align:center}.password-lock-icon{font-size:2.5rem;margin-bottom:20px;opacity:.6}.password-title{font-size:1.2rem;color:#ffffffe6;margin-bottom:25px;letter-spacing:.5px;font-weight:400}.password-input-container{display:flex;gap:8px;margin-bottom:15px}.password-input{flex:1;padding:12px 16px;font-family:inherit;font-size:1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;outline:none;transition:all .2s ease}.password-input:focus{border-color:#fff6;background:#ffffff14}.password-input::placeholder{color:#ffffff4d}.password-button{padding:12px 24px;font-family:inherit;font-size:1rem;font-weight:500;background:#ffffff26;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;cursor:pointer;transition:all .2s ease}.password-button:hover{background:#fff3;border-color:#ffffff4d}.password-button:active{transform:scale(.98)}.password-error{color:#ff6b6b;font-size:.9rem;margin-top:12px}.password-error.hidden{display:none}.password-error.shake{animation:shake .5s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.message-counter{margin-top:20px;padding:15px 20px;background:#ff69b41a;border:1px solid rgba(255,105,180,.2);border-radius:8px;text-align:center;font-size:.95rem;letter-spacing:.3px}.counter-loading{color:#ffffff80;font-size:.85rem}.counter-number{font-size:2rem;font-weight:600;color:#ff69b4;margin-bottom:5px;line-height:1}.counter-label{font-size:.9rem;color:#fffc}.password-features{margin-top:25px;padding-top:25px;border-top:1px solid rgba(255,255,255,.1);text-align:left}.features-title{font-size:.95rem;font-weight:500;color:#ffffffe6;margin-bottom:15px;text-align:center;letter-spacing:.3px}.feature-item{font-size:.85rem;color:#ffffffb3;margin-bottom:10px;padding-left:8px;line-height:1.5;transition:color .2s ease}.feature-item:hover{color:#fffffff2}.feature-item:last-child{margin-bottom:0}@media (max-width: 768px){.password-container{padding:35px 25px}.password-title{font-size:1.1rem}.password-lock-icon{font-size:2.2rem}.password-input-container{flex-direction:column}.password-features{margin-top:25px;padding-top:20px}.features-title{font-size:.9rem}.feature-item{font-size:.8rem}}@media (max-width: 480px){.password-container{padding:30px 20px}.password-title{font-size:1rem}.password-lock-icon{font-size:2rem}.password-input,.password-button{font-size:.95rem;padding:11px 16px}}#loading{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:1000;transition:opacity 1s ease}#loading.hidden{opacity:0;pointer-events:none}.loader{width:60px;height:60px;border:4px solid rgba(255,255,255,.1);border-top:4px solid rgba(255,255,255,.8);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#loading p{color:#ffffffb3;font-size:18px;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}#canvas-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1}#message-container{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;z-index:10;pointer-events:none;max-width:90%;width:800px}#main-title{font-size:4rem;font-weight:600;margin-bottom:40px;background:linear-gradient(135deg,#fff,#ffd9ec,#ffb3d9);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 20px rgba(255,182,218,.6));animation:titleGlow 3s ease-in-out infinite;letter-spacing:2px;text-transform:uppercase}@keyframes titleGlow{0%,to{filter:drop-shadow(0 0 15px rgba(255,182,218,.5))}50%{filter:drop-shadow(0 0 30px rgba(255,182,218,.9))}}#messages{margin:60px 0}.message{font-size:1.8rem;line-height:1.8;margin:30px 0;opacity:0;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.8),0 0 20px rgba(255,182,218,.4);font-weight:400;letter-spacing:.5px}.message.fade-in{animation:fadeIn 2s ease forwards}#msg1{animation-delay:1s}#msg2{animation-delay:3s}#msg3{animation-delay:5s}#msg4{animation-delay:7s}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}#interactive-hint{margin-top:80px;font-size:1.2rem;color:#ffd9ec;opacity:0;animation:fadeIn 2s ease forwards;animation-delay:9s;text-shadow:0 2px 8px rgba(0,0,0,.6)}.sub-hint{font-size:1rem;margin-top:15px;font-style:italic;color:#ffb3d9;text-shadow:0 2px 8px rgba(0,0,0,.6)}#heart-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5}.floating-heart{position:absolute;font-size:3rem;opacity:0;animation:floatHeart 8s ease-in-out infinite}.floating-heart:nth-child(1){top:20%;left:15%;animation-delay:2s}.floating-heart:nth-child(2){top:60%;right:20%;animation-delay:4s}.floating-heart:nth-child(3){bottom:25%;left:25%;animation-delay:6s}@keyframes floatHeart{0%,to{opacity:0;transform:translateY(0) scale(.8)}10%,90%{opacity:.6}50%{opacity:.9;transform:translateY(-30px) scale(1.2)}}@media (max-width: 768px){#main-title{font-size:2.2rem;letter-spacing:1px;margin-bottom:30px}#messages{margin:40px 0}.message{font-size:1.1rem;margin:20px 0;line-height:1.6;letter-spacing:.3px}#interactive-hint{font-size:.9rem;margin-top:50px}.sub-hint{font-size:.85rem}.floating-heart{font-size:2rem}#message-container{max-width:95%;padding:0 10px}}@media (max-width: 480px){#main-title{font-size:1.8rem;letter-spacing:.5px}.message{font-size:1rem;letter-spacing:.2px}#interactive-hint{font-size:.85rem}.floating-heart{font-size:1.5rem}}@media (hover: hover) and (pointer: fine){body{cursor:none}#cursor{position:fixed;width:20px;height:20px;border-radius:50%;background:radial-gradient(circle,#ff69b4cc,#ff69b400 70%);pointer-events:none;z-index:9999;transition:transform .1s ease;display:block}#cursor.active{transform:scale(2)}}@media (hover: none) and (pointer: coarse){#cursor{display:none!important}}#message-bubbles{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:20}.message-bubble{position:absolute;width:60px;height:60px;cursor:pointer;pointer-events:all;animation:bubbleFloat 3s ease-in-out infinite,bubbleGlow 2s ease-in-out infinite;opacity:0;animation-fill-mode:forwards;transition:opacity .5s ease,transform .5s ease;display:none}.message-bubble:nth-child(1){animation-delay:.5s}.message-bubble:nth-child(2){animation-delay:1s}.message-bubble:nth-child(3){animation-delay:1.5s}.message-bubble:nth-child(4){animation-delay:2s}.message-bubble:nth-child(5){animation-delay:2.5s}.message-bubble:nth-child(6){animation-delay:3s}.message-bubble:nth-child(7){animation-delay:3.5s}.message-bubble:nth-child(8){animation-delay:4s}@keyframes bubbleFloat{0%,to{transform:translateY(0);opacity:.8}50%{transform:translateY(-15px);opacity:1}}@keyframes bubbleGlow{0%,to{filter:drop-shadow(0 0 5px rgba(255,182,218,.4))}50%{filter:drop-shadow(0 0 15px rgba(255,182,218,.8))}}.bubble-icon{font-size:3rem;position:relative;z-index:2;transition:transform .3s ease}.message-bubble:hover .bubble-icon{transform:scale(1.2)}.message-bubble:active .bubble-icon{transform:scale(.9)}.bubble-pulse{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;border-radius:50%;background:radial-gradient(circle,#ff69b44d,#ff69b400 70%);animation:pulseBubble 2s ease-out infinite}@keyframes pulseBubble{0%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) scale(2);opacity:0}}.message-modal{position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;pointer-events:none}.message-modal.show{opacity:1;visibility:visible;pointer-events:all}.message-modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000000b3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.message-modal-content{position:absolute;bottom:0;left:50%;width:100%;max-width:500px;transform:translate(-50%) translateY(100%);background:#1c1c1e;border-radius:20px 20px 0 0;box-shadow:0 -5px 40px #00000080;transition:transform .4s cubic-bezier(.25,.8,.25,1);max-height:90vh}.message-modal.show .message-modal-content{transform:translate(-50%) translateY(0)}.message-modal-header{display:flex;align-items:center;padding:20px 20px 15px;border-bottom:1px solid rgba(255,255,255,.1);position:relative}.message-modal-avatar{font-size:2.5rem;margin-right:12px}.message-modal-title{font-size:1.1rem;font-weight:600;color:#fff;flex:1}.message-modal-close{position:absolute;top:15px;right:15px;width:35px;height:35px;border-radius:50%;background:#ffffff1a;border:none;color:#fff;font-size:1.8rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease}.message-modal-close:hover{background:#fff3}.message-modal-close:active{transform:scale(.95)}.message-modal-body{padding:20px;max-height:60vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.message-modal-date{text-align:center;color:#ffffff80;font-size:.85rem;margin-bottom:15px;font-weight:500}.message-bubble-group{display:flex;justify-content:flex-end}.message-modal-footer{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;border-top:1px solid rgba(255,255,255,.1);background:#0003}.message-nav-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;font-size:1.5rem;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;-webkit-user-select:none;user-select:none}.message-nav-btn:hover:not(:disabled){background:#fff3;transform:scale(1.1)}.message-nav-btn:active:not(:disabled){transform:scale(.95)}.message-nav-btn:disabled{opacity:.3;cursor:not-allowed}.message-counter{color:#ffffffb3;font-size:.9rem;font-weight:500;letter-spacing:.5px}.imessage-bubble{max-width:80%;padding:12px 16px;background:linear-gradient(135deg,#007aff,#0051d5);border-radius:18px;color:#fff;font-size:1rem;line-height:1.5;box-shadow:0 2px 8px #007aff4d;word-wrap:break-word;animation:bubbleSlideIn .4s ease .2s backwards}@keyframes bubbleSlideIn{0%{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.message-image{max-width:100%;max-height:400px;width:auto;height:auto;border-radius:12px;display:block;margin-bottom:8px}.image-caption{margin:8px 0 0;font-size:.95rem;line-height:1.4;color:#fff}@media (max-width: 768px){.message-bubble{width:50px;height:50px}.bubble-icon{font-size:2.5rem}.message-modal-content{max-width:100%;width:100%;border-radius:15px 15px 0 0;max-height:85vh}.message-modal-body{max-height:55vh}.imessage-bubble{font-size:.95rem;padding:10px 14px}}@media (max-width: 480px){.message-bubble{width:45px;height:45px}.bubble-icon{font-size:2rem}.message-modal-header{padding:15px 15px 12px}.message-modal-avatar{font-size:2rem}.message-modal-title{font-size:1rem}.imessage-bubble{font-size:.9rem}}
