:root{--primary-pink: #ff7597;--primary-pink-hover: #ff527b;--secondary-peach: #ffb3a7;--warm-berry: #70223b;--sakura-gradient: linear-gradient(135deg, #ff7597 0%, #ffb3a7 100%);--background-gradient: linear-gradient(180deg, #fff5f6 0%, #ffe9ec 100%);--text-dark: #2d2124;--text-muted: #80686d;--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .4);--glass-shadow: 0 8px 32px 0 rgba(255, 117, 151, .12);--card-radius: 20px;--font-fancy: "Comfortaa", "Outfit", "Noto Sans SC", sans-serif;--font-body: "Outfit", "Noto Sans SC", sans-serif}[data-theme=dark]{--primary-pink: #ff8ca8;--primary-pink-hover: #ffb8c9;--secondary-peach: #ffd3cc;--warm-berry: #fbf0f3;--sakura-gradient: linear-gradient(135deg, #70223b 0%, #b23a5b 100%);--background-gradient: linear-gradient(180deg, #1f1115 0%, #0d0608 100%);--text-dark: #f5eef0;--text-muted: #cbbcc0;--glass-bg: rgba(31, 17, 21, .7);--glass-border: rgba(112, 34, 59, .4);--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, .37)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--background-gradient);background-attachment:fixed;color:var(--text-dark);min-height:100vh;overflow-x:hidden;transition:background .5s ease,color .3s ease}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--primary-pink);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--primary-pink-hover)}.glass-panel{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--card-radius);transition:all .3s cubic-bezier(.25,.8,.25,1)}.app-container{max-width:1200px;margin:0 auto;padding:20px;position:relative;z-index:1}.floating-hearts-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden}.heart-particle{position:absolute;color:var(--primary-pink);opacity:.3;animation:floatHeart 12s linear infinite;font-size:20px}@keyframes floatHeart{0%{transform:translateY(110vh) rotate(0) scale(.8);opacity:0}10%{opacity:.4}90%{opacity:.4}to{transform:translateY(-10vh) rotate(360deg) scale(1.2);opacity:0}}.nav-bar{display:flex;justify-content:space-between;align-items:center;padding:15px 30px;margin-bottom:30px;margin-top:10px}.nav-logo{font-family:var(--font-fancy);font-size:1.5rem;font-weight:700;background:var(--sakura-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:flex;align-items:center;gap:8px;cursor:pointer}.nav-links{display:flex;align-items:center;gap:15px}.nav-btn{background:transparent;border:none;padding:8px 16px;font-family:var(--font-body);font-size:1rem;font-weight:500;color:var(--text-dark);cursor:pointer;border-radius:30px;transition:all .3s ease}.nav-btn:hover,.nav-btn.active{background:var(--glass-border);color:var(--primary-pink-hover);box-shadow:0 4px 12px #ff759726}.nav-btn.login-btn{background:var(--sakura-gradient);color:#fff}.nav-btn.login-btn:hover{box-shadow:0 4px 15px #ff759766;transform:translateY(-2px)}.nav-actions{display:flex;align-items:center;gap:10px}.icon-btn{background:transparent;border:none;cursor:pointer;font-size:1.3rem;color:var(--text-dark);padding:8px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.icon-btn:hover{background:var(--glass-border);transform:scale(1.1)}.countdown-banner{padding:40px;text-align:center;margin-bottom:40px;position:relative;overflow:hidden}.banner-title{font-size:2.2rem;font-weight:800;margin-bottom:10px;font-family:var(--font-fancy)}.banner-subtitle{color:var(--text-muted);font-size:1.1rem;margin-bottom:25px}.counter-grid{display:flex;justify-content:center;align-items:center;gap:15px;flex-wrap:wrap}.counter-box{background:#ffffff80;padding:15px 20px;border-radius:15px;min-width:90px;box-shadow:0 4px 10px #00000005;border:1px solid rgba(255,255,255,.3)}[data-theme=dark] .counter-box{background:#0003;border:1px solid rgba(255,255,255,.05)}.counter-num{font-size:2rem;font-weight:700;color:var(--primary-pink);font-family:var(--font-fancy)}.counter-label{font-size:.8rem;color:var(--text-muted);margin-top:5px}.heart-pulse{font-size:2.5rem;color:var(--primary-pink);animation:pulse 1.2s infinite alternate;display:inline-block;margin:0 10px}@keyframes pulse{0%{transform:scale(.9)}to{transform:scale(1.1)}}.timeline-section{display:grid;grid-template-columns:1fr;gap:30px;position:relative}@media (min-width: 992px){.timeline-section{grid-template-columns:350px 1fr;align-items:start}}.sidebar-sticky{position:sticky;top:30px}.event-form-panel{padding:25px}.form-title{font-size:1.3rem;font-weight:700;margin-bottom:20px;display:flex;align-items:center;gap:8px}.form-group{margin-bottom:18px}.form-group label{display:block;font-size:.9rem;font-weight:600;margin-bottom:6px;color:var(--text-dark)}.form-control{width:100%;padding:12px;border-radius:10px;border:1px solid var(--glass-border);background:#fff6;font-family:var(--font-body);color:var(--text-dark);font-size:.95rem;transition:all .3s ease}[data-theme=dark] .form-control{background:#0003}.form-control:focus{outline:none;border-color:var(--primary-pink);background:#fffc;box-shadow:0 0 0 3px #ff759726}[data-theme=dark] .form-control:focus{background:#0006}.file-upload-zone{border:2px dashed var(--primary-pink);border-radius:10px;padding:20px;text-align:center;cursor:pointer;transition:all .3s ease;background:#ff759705}.file-upload-zone:hover{background:#ff759714}.file-upload-icon{font-size:1.8rem;color:var(--primary-pink);margin-bottom:8px}.file-upload-text{font-size:.85rem;color:var(--text-muted)}.preview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}.preview-item{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;border:1px solid var(--glass-border)}.preview-item img,.preview-item video{width:100%;height:100%;object-fit:cover}.preview-remove{position:absolute;top:2px;right:2px;background:#0009;color:#fff;border:none;width:18px;height:18px;font-size:10px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center}.btn-primary{width:100%;background:var(--sakura-gradient);color:#fff;border:none;padding:12px;border-radius:10px;font-family:var(--font-body);font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #ff759733}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ff759766}.timeline-container{position:relative;padding-left:20px}.timeline-container:before{content:"";position:absolute;top:0;bottom:0;left:5px;width:3px;background:var(--sakura-gradient);border-radius:3px;opacity:.6}.timeline-event-card{position:relative;margin-bottom:40px;padding:25px}.timeline-event-card:before{content:"❤️";position:absolute;left:-28px;top:28px;font-size:14px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--sakura-gradient);border-radius:50%;box-shadow:0 0 10px #ff759780;color:#fff}.event-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}.event-date-badge{background:var(--sakura-gradient);color:#fff;padding:5px 12px;border-radius:20px;font-size:.85rem;font-weight:600;box-shadow:0 2px 8px #ff75974d}.event-title{font-size:1.4rem;font-weight:700;margin-top:8px}.event-content{font-size:1rem;line-height:1.6;color:var(--text-dark);margin-bottom:20px;white-space:pre-wrap}.event-delete-btn{color:var(--text-muted);opacity:.5;transition:all .2s ease}.event-delete-btn:hover{color:#ff4757;opacity:1;transform:scale(1.1)}.event-media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:20px}.event-media-item{border-radius:12px;overflow:hidden;border:1px solid var(--glass-border);box-shadow:0 4px 15px #0000000d;cursor:zoom-in;transition:transform .3s ease;position:relative;aspect-ratio:4/3;background:#000}.event-media-item:hover{transform:translateY(-3px) scale(1.02)}.event-media-item img,.event-media-item video{width:100%;height:100%;object-fit:cover}.comments-section{border-top:1px solid var(--glass-border);padding-top:20px;margin-top:10px}.comments-title{font-size:.95rem;font-weight:700;margin-bottom:12px;color:var(--text-muted);display:flex;align-items:center;gap:5px}.comments-list{display:flex;flex-direction:column;gap:10px;margin-bottom:15px}.comment-bubble{background:#fff6;padding:10px 15px;border-radius:12px;font-size:.9rem;position:relative;display:flex;flex-direction:column;gap:3px}[data-theme=dark] .comment-bubble{background:#00000026}.comment-user{font-weight:700;font-size:.8rem;color:var(--primary-pink)}.comment-text{color:var(--text-dark)}.comment-meta{font-size:.75rem;color:var(--text-muted);display:flex;justify-content:space-between;align-items:center;margin-top:4px}.comment-delete{background:transparent;border:none;color:var(--text-muted);font-size:.75rem;cursor:pointer}.comment-delete:hover{color:#ff4757}.comment-form{display:flex;gap:10px}.comment-input{flex-grow:1;border-radius:20px;padding:8px 16px;border:1px solid var(--glass-border);background:#ffffff80;font-family:var(--font-body);color:var(--text-dark);font-size:.88rem}.comment-input:focus{outline:none;border-color:var(--primary-pink);background:#fffc}[data-theme=dark] .comment-input{background:#0003}[data-theme=dark] .comment-input:focus{background:#0000004d}.comment-submit-btn{background:var(--sakura-gradient);color:#fff;border:none;padding:8px 15px;border-radius:20px;font-family:var(--font-body);font-weight:600;cursor:pointer;font-size:.85rem;box-shadow:0 2px 8px #ff759733}.bucket-list-panel{padding:30px}.bucket-list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:25px;margin-top:25px}.bucket-card{padding:20px;display:flex;flex-direction:column;height:100%;position:relative;overflow:hidden;transition:all .3s ease}.bucket-card.completed{border-color:#ff759766}.bucket-card-bg-completed{position:absolute;bottom:-15px;right:-15px;font-size:5rem;opacity:.05;pointer-events:none;transform:rotate(-15deg)}.bucket-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.bucket-checkbox{width:22px;height:22px;border-radius:50%;border:2px solid var(--primary-pink);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;margin-top:2px;transition:all .2s ease}.bucket-checkbox.checked{background:var(--primary-pink);color:#fff}.bucket-title{font-weight:700;font-size:1.1rem;line-height:1.3}.bucket-card.completed .bucket-title{text-decoration:line-through;color:var(--text-muted)}.bucket-desc{font-size:.88rem;color:var(--text-muted);margin-bottom:15px;flex-grow:1}.bucket-proof-photo{width:100%;aspect-ratio:16/10;border-radius:10px;object-fit:cover;margin-bottom:15px;border:1px solid var(--glass-border)}.bucket-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;font-size:.8rem;color:var(--text-muted)}.bucket-date{background:#ff759714;padding:3px 8px;border-radius:10px;font-weight:600}.proof-upload-row{display:flex;flex-direction:column;gap:8px;margin-bottom:15px}.proof-input-file{display:none}.proof-upload-btn{border:1px dashed var(--primary-pink);color:var(--primary-pink);padding:6px 12px;border-radius:8px;text-align:center;font-size:.8rem;cursor:pointer;transition:all .2s ease}.proof-upload-btn:hover{background:#ff75970d}.login-container{display:flex;justify-content:center;align-items:center;min-height:70vh}.login-card{width:100%;max-width:400px;padding:40px}.login-header{text-align:center;margin-bottom:30px}.login-logo{font-size:3rem;margin-bottom:10px}.login-title{font-family:var(--font-fancy);font-size:1.6rem;font-weight:800;color:var(--text-dark)}.media-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;cursor:zoom-out}.media-modal-content{max-width:90%;max-height:90%;box-shadow:0 10px 40px #00000080;border-radius:12px;overflow:hidden}.media-modal-content img,.media-modal-content video{width:auto;height:auto;max-width:100%;max-height:90vh;display:block}.add-bucket-form{display:flex;gap:10px;margin-top:20px;margin-bottom:10px}.add-bucket-input{flex-grow:1;padding:10px 15px;border-radius:10px;border:1px solid var(--glass-border);background:#fff6}[data-theme=dark] .add-bucket-input{background:#0003}.add-bucket-btn{background:var(--sakura-gradient);color:#fff;border:none;padding:10px 20px;border-radius:10px;font-weight:600;cursor:pointer;transition:all .2s ease}.add-bucket-btn:hover{transform:translateY(-1px)}
