:root{--primary-color: #ff9a9e;--secondary-color: #fecfef;--text-color: #555;--bg-color: #fff0f5;--card-bg: #ffffff;--accent-color: #ff6b6b}*{box-sizing:border-box;margin:0;padding:0}body{font-family:"Noto Serif SC",serif;background-color:var(--bg-color);color:var(--text-color);overflow-x:hidden}#login-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#ff9a9e,#fecfef);display:flex;justify-content:center;align-items:center;z-index:9999}.login-box{background:#fff;padding:2rem 3rem;border-radius:15px;box-shadow:0 10px 25px #0000001a;text-align:center;max-width:90%}.login-box h1{font-family:Dancing Script,cursive;color:var(--accent-color);font-size:3rem;margin-bottom:1rem}.login-box input{display:block;width:100%;padding:10px;margin:15px 0;border:2px solid #eee;border-radius:5px;font-size:1rem;outline:none;transition:border-color .3s}.login-box input:focus{border-color:var(--primary-color)}.login-box button{background:var(--primary-color);color:#fff;border:none;padding:10px 25px;font-size:1.1rem;border-radius:25px;cursor:pointer;transition:transform .2s,background .3s}.login-box button:hover{background:var(--accent-color);transform:scale(1.05)}#main-content{opacity:0;transition:opacity 1s ease-in}#main-content.visible{opacity:1}.hero-section{height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:radial-gradient(circle at center,#fff 0%,var(--bg-color) 70%);padding:20px;position:relative}.title{font-family:Dancing Script,cursive;font-size:5rem;color:var(--accent-color);text-shadow:2px 2px 4px rgba(0,0,0,.1);margin-bottom:20px}.subtitle{font-size:1.5rem;min-height:1.5em;margin-bottom:40px;font-weight:400;color:#444}.info-panel{background:#fffc;padding:20px 40px;border-radius:15px;box-shadow:0 5px 15px #0000000d}.current-time{font-size:1.8rem;font-weight:700;color:var(--accent-color);font-family:"Noto Serif SC",serif;letter-spacing:1px}.time-display{font-size:1.2rem;margin-bottom:15px;padding-bottom:15px;border-bottom:1px dashed rgba(255,154,158,.4)}.time-label{color:var(--text-color)}.days-counter{font-size:1.2rem}.highlight{color:var(--accent-color);font-weight:700;font-size:1.5rem;margin:0 5px}.scroll-indicator{position:absolute;bottom:30px;animation:bounce 2s infinite;color:var(--accent-color);font-size:1rem}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.timeline-container{position:relative;max-width:1200px;margin:0 auto;padding:40px 20px}.timeline-line{position:absolute;left:50%;top:0;bottom:0;width:4px;background-color:var(--primary-color);transform:translate(-50%);border-radius:2px}.timeline-item{padding:10px 40px;position:relative;background-color:inherit;width:50%;box-sizing:border-box;opacity:0;transform:translateY(50px);transition:all .8s ease-out}.left{left:0;text-align:right}.right{left:50%;text-align:left}.timeline-heart{position:absolute;width:40px;height:40px;right:-20px;background-color:#fff;border:4px solid var(--accent-color);top:20px;border-radius:50%;z-index:10;color:var(--accent-color);box-shadow:0 0 10px #ff6b6b66;display:flex;justify-content:center;align-items:center}.timeline-heart svg{width:18px;height:18px}.right .timeline-heart{left:-20px}.timeline-content{padding:20px 30px;background-color:var(--card-bg);position:relative;border-radius:15px;box-shadow:0 5px 20px #0000001a;border:1px solid rgba(255,154,158,.3)}.timeline-content:hover{transform:scale(1.02);transition:transform .3s ease}.date-label{display:inline-block;padding:5px 15px;background:var(--secondary-color);color:var(--accent-color);border-radius:20px;font-size:.9rem;font-weight:700;margin-bottom:10px}.timeline-content h3{margin-bottom:10px;color:var(--accent-color);font-size:1.5rem}.timeline-content p{font-size:1rem;line-height:1.6;margin-bottom:15px}.timeline-content img{width:100%;border-radius:10px;display:block;margin-top:10px;cursor:pointer;min-height:200px;background:linear-gradient(135deg,var(--secondary-color) 0%,var(--bg-color) 50%,var(--secondary-color) 100%);background-size:200% 100%;animation:shimmer 1.5s infinite linear;opacity:0;transition:opacity .5s ease-in-out,transform .3s ease,box-shadow .3s ease}.timeline-content img.loaded{animation:none;background:transparent;min-height:auto;opacity:1;box-shadow:0 4px 8px #0000001a}.timeline-content img:hover{transform:scale(1.03);box-shadow:0 8px 25px #ff6b6b4d}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.timeline-item.show{opacity:1;transform:translateY(0)}.timeline-item.pending-upload{display:none!important}.year-divider{position:relative;width:100%;max-width:600px;margin:60px auto;text-align:center;padding:30px 0;z-index:10;background:var(--bg-color)}.year-divider:before,.year-divider:after{content:"";position:absolute;top:50%;width:30%;height:2px;background:linear-gradient(90deg,transparent,var(--primary-color),transparent)}.year-divider:before{left:0}.year-divider:after{right:0}.year-divider .year-badge{display:inline-block;padding:15px 40px;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff;font-family:Dancing Script,cursive;font-size:2rem;border-radius:50px;box-shadow:0 8px 25px #ff6b6b4d;position:relative;z-index:5;animation:pulse-glow 2s ease-in-out infinite}.year-divider .year-badge:before,.year-divider .year-badge:after{content:"✨";position:absolute;top:50%;transform:translateY(-50%);font-size:1.2rem}.year-divider .year-badge:before{left:-30px}.year-divider .year-badge:after{right:-30px}.year-divider .divider-hearts{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:15px;font-size:1rem;color:var(--accent-color);opacity:.7;background:var(--bg-color);padding:5px 20px;margin-left:auto;margin-right:auto;width:fit-content;border-radius:20px}.svg-heart-outline{display:inline-flex;align-items:center;justify-content:center}.svg-heart-outline svg{width:16px;height:16px}@keyframes pulse-glow{0%,to{box-shadow:0 8px 25px #ff6b6b4d}50%{box-shadow:0 8px 35px #ff6b6b80}}.footer-end{text-align:center;padding:50px 0;color:var(--accent-color);font-size:1.2rem;position:relative;z-index:2}.footer-heart{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}.footer-heart svg{width:1em;height:1em}.timeline-sort-bar{display:flex;justify-content:center;margin-bottom:30px;position:relative;z-index:20}.sort-toggle-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;border:2px solid rgba(255,154,158,.4);border-radius:50px;background:linear-gradient(135deg,#ffffffe6,#fff5f5e6);color:var(--accent-color);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 15px #ff6b6b26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);letter-spacing:1px;position:relative;overflow:hidden}.sort-toggle-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));opacity:0;transition:opacity .4s ease;border-radius:50px}.sort-toggle-btn:hover{transform:translateY(-3px);box-shadow:0 8px 25px #ff6b6b4d;border-color:var(--primary-color)}.sort-toggle-btn:hover:before{opacity:1}.sort-toggle-btn:hover .sort-icon,.sort-toggle-btn:hover .sort-text,.sort-toggle-btn:hover .sort-arrow{color:#fff;position:relative;z-index:1}.sort-toggle-btn:active{transform:translateY(-1px);box-shadow:0 4px 12px #ff6b6b40}.sort-toggle-btn.active{background:linear-gradient(135deg,var(--primary-color),var(--accent-color));color:#fff;border-color:transparent;box-shadow:0 6px 20px #ff6b6b59}.sort-toggle-btn.active:before{opacity:0}.sort-toggle-btn.active:hover{background:linear-gradient(135deg,var(--accent-color),var(--primary-color));box-shadow:0 8px 25px #ff6b6b73}.sort-icon{font-size:1.1rem;transition:transform .4s ease,color .3s ease}.sort-toggle-btn.active .sort-icon{transform:rotate(180deg)}.sort-text{transition:color .3s ease}.sort-arrow{font-size:.85rem;transition:transform .4s ease,color .3s ease}.sort-toggle-btn.active .sort-arrow{transform:rotate(180deg)}.timeline-item.sort-fade-out{opacity:0!important;transform:translateY(30px)!important;transition:all .3s ease-out!important}.timeline-item.sort-fade-in{animation:sort-appear .5s ease-out forwards}@keyframes sort-appear{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media screen and (max-width:768px){.title{font-size:3.5rem}.subtitle{font-size:1.2rem}.timeline-line{left:30px}.timeline-item{width:100%;padding-left:70px;padding-right:20px;text-align:left}.left,.right{left:0}.timeline-heart{left:10px;right:auto;transform:translate(-50%)}.right .timeline-heart{left:10px;transform:translate(-50%)}.sort-toggle-btn{padding:10px 22px;font-size:.85rem}}.lightbox{display:none;position:fixed;z-index:10000;left:0;top:0;width:100%;height:100%;background-color:#000000d9;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);opacity:0;transition:opacity .3s ease}.lightbox.active{display:flex;justify-content:center;align-items:center;opacity:1}.lightbox-image{max-width:90%;max-height:85vh;border-radius:15px;box-shadow:0 10px 40px #ff9a9e66,0 0 100px #ff6b6b33;animation:lightbox-zoom-in .3s ease-out;border:3px solid rgba(255,154,158,.5)}@keyframes lightbox-zoom-in{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.lightbox-close{position:absolute;top:20px;right:35px;color:#fff;font-size:45px;font-weight:700;cursor:pointer;transition:color .3s ease,transform .3s ease;text-shadow:0 0 10px rgba(255,154,158,.8);z-index:10001}.lightbox-close:hover{color:var(--primary-color);transform:scale(1.2) rotate(90deg)}.greeting-card-modal{display:none;position:fixed;z-index:10000;left:0;top:0;width:100%;height:100%;background-color:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transition:opacity .3s ease}.greeting-card-modal.active{display:flex;justify-content:center;align-items:center;opacity:1}.greeting-card{position:relative;width:90%;max-width:500px;background:linear-gradient(145deg,#fff,#fff5f5,#ffe8ec);border-radius:20px;padding:40px 35px;box-shadow:0 20px 60px #ff6b6b4d,0 0 100px #ff9a9e33,inset 0 1px #fffc;border:3px solid rgba(255,154,158,.4);animation:card-appear .4s ease-out}@keyframes card-appear{0%{transform:scale(.8) rotateX(10deg);opacity:0}to{transform:scale(1) rotateX(0);opacity:1}}.greeting-card-close{position:absolute;top:15px;right:20px;color:var(--accent-color);font-size:35px;font-weight:700;cursor:pointer;transition:color .3s ease,transform .3s ease;text-shadow:0 0 10px rgba(255,154,158,.5);z-index:10001;line-height:1}.greeting-card-close:hover{color:var(--primary-color);transform:scale(1.2) rotate(90deg)}.card-decoration{height:6px;background:linear-gradient(90deg,transparent,var(--primary-color),var(--secondary-color),var(--primary-color),transparent);border-radius:3px;margin:0 auto;width:80%}.card-decoration-top{margin-bottom:25px}.card-decoration-bottom{margin-top:25px}.card-content{text-align:center}.card-title{font-family:"Noto Serif SC",serif;font-size:2.5rem;font-weight:700;color:var(--accent-color);margin-bottom:25px;letter-spacing:6px}.card-message{background:#fff9;padding:25px;border-radius:15px;border:1px dashed rgba(255,154,158,.5)}.card-greeting{font-size:1.2rem;color:var(--accent-color);font-weight:700;margin-bottom:15px;text-align:left}.card-text{font-size:1.05rem;line-height:1.9;color:var(--text-color);text-align:left;text-indent:2em}.super-love{color:var(--accent-color);font-weight:700}.chao{display:inline}.chao-1{font-size:1em}.chao-2{font-size:1.1em}.chao-3{font-size:1.2em}.chao-final{font-size:1.3em}.card-hearts{margin-top:20px;display:flex;justify-content:center;gap:15px}.card-hearts span{display:inline-flex;align-items:center;justify-content:center;color:var(--accent-color);animation:heart-beat 1.2s ease-in-out infinite}.card-hearts span svg{width:1.5rem;height:1.5rem}.card-hearts span:nth-child(2){animation-delay:.2s}.card-hearts span:nth-child(3){animation-delay:.4s}@keyframes heart-beat{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@media screen and (max-width:768px){.lightbox-image{max-width:95%;max-height:80vh}.lightbox-close{top:15px;right:20px;font-size:35px}.greeting-card{padding:30px 25px;max-width:90%}.card-title{font-size:2rem;letter-spacing:4px}.card-message{padding:20px}.card-greeting{font-size:1.1rem}.card-text{font-size:1rem;line-height:1.8}}.photo-upload-modal{display:none;position:fixed;z-index:10000;left:0;top:0;width:100%;height:100%;background-color:#3c0a1e8c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transition:opacity .3s ease;justify-content:center;align-items:center}.photo-upload-modal.active{display:flex;opacity:1}.photo-upload-panel{position:relative;width:92%;max-width:480px;max-height:90vh;background:linear-gradient(160deg,#fff,#fff8fa 55%,#fff0f5);border-radius:24px;display:flex;flex-direction:column;box-shadow:0 25px 60px #ec489938,0 0 0 1.5px #ff9a9e4d,0 0 0 1px #ffffffd9 inset;animation:upload-panel-appear .38s cubic-bezier(.34,1.56,.64,1);overflow:hidden}@keyframes upload-panel-appear{0%{transform:scale(.85) translateY(24px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.upload-panel-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid rgba(255,154,158,.2);flex-shrink:0}.upload-panel-title{font-size:1.1rem;font-weight:700;color:var(--accent-color);letter-spacing:1px;font-family:"Noto Serif SC",serif;display:flex;align-items:center;gap:6px}.photo-upload-close{width:36px;height:36px;border:none;border-radius:50%;background:#ff9a9e1f;color:var(--primary-color);font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s ease;padding:0}.photo-upload-close:hover{background:#ec48992e;color:var(--accent-color);transform:rotate(90deg) scale(1.1)}.upload-panel-body{padding:20px 24px 24px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;scrollbar-width:thin;scrollbar-color:rgba(255,154,158,.35) transparent}.upload-panel-body::-webkit-scrollbar{width:4px}.upload-panel-body::-webkit-scrollbar-thumb{background:#ff9a9e66;border-radius:4px}.upload-form-group{display:flex;flex-direction:column;gap:6px}.upload-label{font-size:.85rem;font-weight:600;color:var(--accent-color);letter-spacing:.5px}.upload-select,.upload-input{width:100%;padding:10px 14px;border:1.5px solid rgba(255,154,158,.35);border-radius:12px;font-size:.92rem;font-family:"Noto Serif SC",serif;color:var(--text-color);background:#ffffffd9;outline:none;transition:border-color .25s ease,box-shadow .25s ease;box-sizing:border-box;-moz-appearance:none;appearance:none;-webkit-appearance:none}.upload-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23ff9a9e' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;cursor:pointer}.upload-select:focus,.upload-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #ff9a9e26}.upload-select::placeholder,.upload-input::placeholder{color:#f0b8c0}.upload-textarea{width:100%;padding:10px 14px;border:1.5px solid rgba(255,154,158,.35);border-radius:12px;font-size:.92rem;font-family:"Noto Serif SC",serif;color:var(--text-color);background:#ffffffd9;outline:none;resize:none;transition:border-color .25s ease,box-shadow .25s ease;box-sizing:border-box;line-height:1.6}.upload-textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #ff9a9e26}.upload-textarea::placeholder{color:#f0b8c0}.photo-drop-zone{border:2px dashed rgba(255,154,158,.5);border-radius:16px;background:#fff5f899;cursor:pointer;transition:border-color .25s ease,background .25s ease,transform .2s ease;overflow:hidden;min-height:130px;display:flex;align-items:center;justify-content:center;position:relative}.photo-drop-zone:hover,.photo-drop-zone.drag-over{border-color:var(--primary-color);background:#ffe4ebb3;transform:scale(1.01)}.photo-drop-zone.has-file{border-style:solid;border-color:#ec489966}.drop-zone-hint{text-align:center;padding:24px 16px;pointer-events:none}.drop-zone-icon{font-size:2.2rem;display:block;margin-bottom:8px;animation:upload-float 2.8s ease-in-out infinite}.drop-zone-hint p{font-size:.9rem;color:var(--primary-color);font-weight:600;margin:0 0 4px}.drop-zone-sub{font-size:.78rem!important;color:#e0a8b0!important;font-weight:400!important}.photo-preview-area{width:100%;text-align:center;padding:12px;box-sizing:border-box}.photo-preview-area img{max-width:100%;max-height:200px;border-radius:12px;object-fit:cover;box-shadow:0 4px 16px #ec489933;display:block;margin:0 auto 8px}.preview-replace-hint{font-size:.78rem;color:#e0a8b0;margin:0}.photo-upload-status{font-size:.88rem;min-height:20px;text-align:center;border-radius:8px;padding:0 4px;transition:all .25s ease}.photo-upload-status--success{color:#16a34a;background:#16a34a14;padding:6px 12px}.photo-upload-status--error{color:#dc2626;background:#dc262614;padding:6px 12px}.upload-actions{display:flex;justify-content:center;padding-top:4px}.upload-save-btn{padding:11px 40px;border:none;border-radius:50px;background:linear-gradient(135deg,#f472b6,#ec4899);color:#fff;font-size:.95rem;font-weight:700;cursor:pointer;letter-spacing:1px;font-family:"Noto Serif SC",serif;transition:all .3s ease;box-shadow:0 4px 18px #ec489966}.upload-save-btn:hover{transform:translateY(-3px);box-shadow:0 8px 28px #ec489985;background:linear-gradient(135deg,#ec4899,#db2777)}.upload-save-btn:active{transform:translateY(-1px)}.upload-save-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}@media screen and (max-width:768px){.photo-upload-panel{max-width:96%;max-height:92vh}.upload-panel-header{padding:16px 18px 12px}.upload-panel-body{padding:16px 18px 20px;gap:14px}.upload-save-btn{padding:11px 32px}}.back-to-top{position:fixed;bottom:40px;right:40px;width:60px;height:60px;border:none;border-radius:50%;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff;cursor:pointer;z-index:9000;opacity:0;visibility:hidden;transform:translateY(20px);transition:all .4s ease;box-shadow:0 5px 20px #ff6b6b66;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{transform:translateY(-5px);box-shadow:0 10px 30px #ff6b6b80;background:linear-gradient(135deg,var(--accent-color),var(--primary-color))}.back-to-top:active{transform:translateY(-2px)}.back-to-top .arrow-up{font-size:24px;font-weight:700;line-height:1;position:relative;z-index:2;animation:float-arrow 1.5s ease-in-out infinite}@keyframes float-arrow{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.back-to-top:before,.back-to-top:after{content:"♡";position:absolute;font-size:10px;opacity:0;transition:all .3s ease}.back-to-top:before{top:8px;left:8px}.back-to-top:after{bottom:8px;right:8px}.back-to-top:hover:before,.back-to-top:hover:after{opacity:.7}.greeting-card-trigger{text-align:center;padding:20px 0 60px;position:relative;z-index:2}.card-link{font-size:1.3rem;color:var(--accent-color);cursor:pointer;text-decoration:underline;text-underline-offset:4px;text-decoration-color:#ff6b6b80;text-decoration-thickness:2px;position:relative;transition:all .3s ease;font-weight:500;letter-spacing:1px}.card-link:hover{color:var(--primary-color);text-decoration-color:var(--primary-color);text-shadow:0 0 15px rgba(255,154,158,.5)}.card-link:before,.card-link:after{content:"✨";position:absolute;top:50%;transform:translateY(-50%);opacity:0;transition:all .3s ease}.card-link:before{left:-25px}.card-link:after{right:-25px}.card-link:hover:before,.card-link:hover:after{opacity:1}.photo-upload-btn{position:fixed;bottom:185px;right:40px;width:60px;height:60px;border:none;border-radius:50%;background:linear-gradient(135deg,#f472b6,#ec4899);color:#fff;cursor:pointer;z-index:9000;opacity:.92;transform:translateY(0);transition:all .35s cubic-bezier(.4,0,.2,1);box-shadow:0 5px 20px #ec489966;display:flex;justify-content:center;align-items:center;font-size:22px;line-height:1}.photo-upload-btn:hover{transform:translateY(-5px) scale(1.08);box-shadow:0 10px 30px #ec48998c;opacity:1}.photo-upload-btn:active{transform:translateY(-2px) scale(1.02)}.upload-btn-icon{animation:upload-float 2.8s ease-in-out infinite;display:flex;align-items:center;justify-content:center}@keyframes upload-float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(-6deg)}}@media screen and (max-width:768px){.back-to-top{bottom:25px;right:25px;width:50px;height:50px}.back-to-top .arrow-up{font-size:20px}.card-link{font-size:1.1rem}.photo-upload-btn{bottom:160px;right:25px;width:50px;height:50px;font-size:18px}}.message-board-btn{position:fixed;bottom:110px;right:40px;width:60px;height:60px;border:none;border-radius:50%;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff;cursor:pointer;z-index:9000;opacity:.92;transform:translateY(0);transition:all .35s cubic-bezier(.4,0,.2,1);box-shadow:0 5px 20px #ff9a9e73;display:flex;justify-content:center;align-items:center}.message-board-btn:hover{transform:translateY(-5px) scale(1.08);box-shadow:0 10px 30px #ff6b6b80;opacity:1}.message-board-btn:active{transform:translateY(-2px) scale(1.02)}.msg-btn-icon{width:26px;height:26px;display:flex;align-items:center;justify-content:center;animation:msg-float 2.5s ease-in-out infinite}.msg-btn-icon svg{width:100%;height:100%;display:block}@keyframes msg-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.message-board-modal{display:none;position:fixed;z-index:10000;left:0;top:0;width:100%;height:100%;background-color:#501e2880;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transition:opacity .3s ease;justify-content:center;align-items:center}.message-board-modal.active{display:flex;opacity:1}.message-board-panel{position:relative;width:92%;max-width:520px;max-height:82vh;background:linear-gradient(160deg,#fff,#fff8fa 55%,#fff0f5);border-radius:24px;display:flex;flex-direction:column;box-shadow:0 25px 60px #ff6b6b33,0 0 0 1px #fffc inset;border:1.5px solid rgba(255,154,158,.25);animation:panel-appear .35s cubic-bezier(.34,1.56,.64,1);overflow:hidden}@keyframes panel-appear{0%{transform:scale(.88) translateY(20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.msg-panel-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid rgba(255,154,158,.2);flex-shrink:0}.msg-panel-title{display:flex;align-items:center;gap:8px;font-size:1.15rem;font-weight:700;color:var(--accent-color);letter-spacing:1px;font-family:"Noto Serif SC",serif}.msg-title-icon{width:1.3rem;height:1.3rem;display:flex;align-items:center;flex-shrink:0}.msg-title-icon svg{width:100%;height:100%;display:block}.msg-panel-close{width:36px;height:36px;border:none;border-radius:50%;background:#ff9a9e1f;color:var(--primary-color);font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s ease;padding:0}.msg-panel-close:hover{background:#ff6b6b2e;color:var(--accent-color);transform:rotate(90deg) scale(1.1)}.msg-list{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;scrollbar-color:rgba(255,154,158,.35) transparent}.msg-list::-webkit-scrollbar{width:4px}.msg-list::-webkit-scrollbar-track{background:transparent}.msg-list::-webkit-scrollbar-thumb{background:#ff9a9e66;border-radius:4px}.msg-item{background:#fffc;border:1px solid rgba(255,154,158,.18);border-radius:16px;padding:14px 16px;transition:transform .2s ease,box-shadow .2s ease;animation:msg-item-in .35s ease-out both}@keyframes msg-item-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.msg-item:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ff9a9e33}.msg-load-more{width:100%;padding:10px 0;border:1.5px dashed rgba(255,154,158,.45);border-radius:12px;background:transparent;color:var(--primary-color);font-size:.85rem;cursor:pointer;letter-spacing:1px;transition:all .25s ease;margin-top:4px}.msg-load-more:hover:not(:disabled){background:#ff9a9e14;border-color:var(--primary-color)}.msg-load-more:disabled{opacity:.5;cursor:not-allowed}.msg-item-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.msg-item-header .msg-time{flex:1}.msg-delete-btn{flex-shrink:0;width:22px;height:22px;border:none;border-radius:50%;background:transparent;color:#d0a0a8;font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;opacity:0;transition:opacity .2s ease,background .2s ease,color .2s ease}.msg-item:hover .msg-delete-btn{opacity:1}.msg-delete-btn:hover{background:#ff6b6b1f;color:var(--accent-color)}.msg-author{font-size:.9rem;font-weight:700;color:var(--accent-color);letter-spacing:.5px}.msg-time{font-size:.75rem;color:#e0a8b0;letter-spacing:.3px}.msg-content{font-size:.95rem;line-height:1.75;color:var(--text-color);word-break:break-word;white-space:pre-wrap}.msg-empty{text-align:center;padding:40px 20px;color:#f0b0bb;font-size:.95rem}.msg-empty-icon{font-size:2.5rem;display:block;margin-bottom:12px;animation:msg-float 2.5s ease-in-out infinite}.msg-loading{display:flex;justify-content:center;align-items:center;gap:8px;padding:40px 0}.msg-loading-dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));animation:msg-bounce 1.2s ease-in-out infinite}.msg-loading-dot:nth-child(2){animation-delay:.2s}.msg-loading-dot:nth-child(3){animation-delay:.4s}@keyframes msg-bounce{0%,80%,to{transform:scale(.7);opacity:.5}40%{transform:scale(1.2);opacity:1}}.msg-input-area{border-top:1px solid rgba(255,154,158,.2);padding:14px 20px 18px;flex-shrink:0;background:#ffffff80}.msg-input{width:100%;border:1.5px solid rgba(255,154,158,.35);border-radius:12px;padding:10px 14px;font-size:.92rem;font-family:"Noto Serif SC",serif;color:var(--text-color);background:#ffffffd9;resize:none;outline:none;transition:border-color .25s ease,box-shadow .25s ease;line-height:1.6}.msg-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #ff9a9e26}.msg-input::placeholder{color:#f0b8c0}.msg-input-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.msg-char-count{font-size:.78rem;color:#e0a8b0}.msg-submit-btn{padding:8px 20px;border:none;border-radius:20px;background:linear-gradient(135deg,var(--primary-color),var(--accent-color));color:#fff;font-size:.88rem;font-weight:600;cursor:pointer;letter-spacing:.5px;transition:all .3s ease;box-shadow:0 3px 12px #ff6b6b4d}.msg-submit-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px #ff6b6b73;background:linear-gradient(135deg,var(--accent-color),var(--primary-color))}.msg-submit-btn:active{transform:translateY(0)}.msg-submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.msg-reply-area{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(255,154,158,.2)}.msg-reply-toggle{display:inline-flex;align-items:center;gap:5px;border:none;background:transparent;color:#d0a0a8;font-size:.78rem;cursor:pointer;padding:3px 8px 3px 4px;border-radius:20px;transition:all .2s ease;letter-spacing:.3px}.msg-reply-toggle:hover,.msg-reply-toggle.active{background:#ff9a9e1a;color:var(--accent-color)}.msg-reply-toggle-icon{font-size:.85rem;transition:transform .3s ease}.msg-reply-toggle.active .msg-reply-toggle-icon{transform:scale(1.2)}.msg-reply-panel{margin-top:10px;animation:msg-item-in .25s ease-out both}.msg-reply-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.msg-reply-empty{text-align:center;padding:10px 0;color:#f0b0bb;font-size:.8rem;letter-spacing:.5px}.msg-reply-loading{display:flex;justify-content:center;align-items:center;gap:6px;padding:12px 0}.msg-reply-item{background:#fff2f6b3;border:1px solid rgba(255,154,158,.12);border-radius:12px;padding:10px 12px;animation:msg-item-in .3s ease-out both}.msg-reply-item:hover .msg-reply-delete-btn{opacity:1}.msg-reply-header{display:flex;align-items:center;gap:6px;margin-bottom:5px}.msg-reply-header .msg-reply-time{flex:1}.msg-reply-author{font-size:.82rem;font-weight:700;color:var(--accent-color);letter-spacing:.5px}.msg-reply-time{font-size:.72rem;color:#e0a8b0}.msg-reply-content{font-size:.88rem;line-height:1.65;color:var(--text-color);word-break:break-word;white-space:pre-wrap}.msg-reply-delete-btn{flex-shrink:0;width:20px;height:20px;border:none;border-radius:50%;background:transparent;color:#d0a0a8;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;opacity:0;transition:opacity .2s ease,background .2s ease,color .2s ease}.msg-reply-delete-btn:hover{background:#ff6b6b1f;color:var(--accent-color)}.msg-reply-input-row{display:flex;gap:8px;align-items:flex-end}.msg-reply-input{flex:1;border:1.5px solid rgba(255,154,158,.3);border-radius:10px;padding:7px 10px;font-size:.85rem;font-family:"Noto Serif SC",serif;color:var(--text-color);background:#ffffffd9;resize:none;outline:none;transition:border-color .25s ease,box-shadow .25s ease;line-height:1.5}.msg-reply-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #ff9a9e1f}.msg-reply-input::placeholder{color:#f0b8c0}.msg-reply-submit-btn{flex-shrink:0;padding:7px 14px;border:none;border-radius:20px;background:linear-gradient(135deg,var(--primary-color),var(--accent-color));color:#fff;font-size:.82rem;font-weight:600;cursor:pointer;letter-spacing:.5px;transition:all .25s ease;box-shadow:0 2px 8px #ff6b6b40;white-space:nowrap}.msg-reply-submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 14px #ff6b6b66}.msg-reply-submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}@media screen and (max-width:768px){.message-board-btn{bottom:90px;right:25px;width:50px;height:50px}.msg-btn-icon{width:22px;height:22px}.message-board-panel{max-height:88vh;max-width:96%}.msg-panel-header{padding:16px 18px 12px}.msg-reply-input-row{flex-direction:column;align-items:stretch}.msg-reply-submit-btn{align-self:flex-end}}
