@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,600;1,600&display=swap";:root{--primary:#ff4d6d;--primary-light:#ff758f;--primary-dark:#c9184a;--secondary:#a2d2ff;--bg-gradient-1:#fff0f3;--bg-gradient-2:#ffccd5;--text-dark:#2b2d42;--text-light:#8d99ae;--white:#fff;--glass-bg:#ffffffb3;--glass-border:#fff6;--shadow-sm:0 4px 6px -1px #0000000d, 0 2px 4px -1px #00000008;--shadow-md:0 10px 15px -3px #0000000d, 0 4px 6px -2px #00000006;--shadow-lg:0 20px 25px -5px #0000001a, 0 10px 10px -5px #0000000a}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--text-dark);-webkit-font-smoothing:antialiased;background-color:#ffccd5;min-height:100vh;font-family:Be Vietnam Pro,sans-serif;position:relative;overflow-x:hidden}body:before{content:"";z-index:-1;background-image:var(--bg-image,none);filter:blur(4px)brightness(.92);background-position:50%;background-repeat:no-repeat;background-size:cover;position:fixed;inset:0;transform:scale(1.04)}body:after{content:"";z-index:-1;background:linear-gradient(135deg,#fff0f38c 0%,#ffccd58c 100%);position:fixed;inset:0}h1,h2,h3,h4,h5,h6{font-family:Lora,serif}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);box-shadow:var(--shadow-md);border-radius:20px}.title-gradient{background:linear-gradient(to right, var(--primary), var(--primary-light));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.animate-float{animation:4s ease-in-out infinite float}@keyframes pulse-heart{0%{transform:scale(1)}25%{transform:scale(1.1)}50%{transform:scale(1)}75%{transform:scale(1.1)}to{transform:scale(1)}}.animate-pulse-heart{animation:2s infinite pulse-heart}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:.5s ease-out forwards fadeIn}.app-container{flex-direction:column;min-height:100vh;padding-top:60px;display:flex}.main-content{flex:1;width:100%;max-width:800px;margin:0 auto;padding:20px}.top-nav{background:var(--glass-bg);-webkit-backdrop-filter:blur(15px);border:1px solid var(--glass-border);z-index:1000;width:max-content;max-width:90%;height:50px;box-shadow:var(--shadow-md);border-radius:30px;justify-content:center;align-items:center;gap:8px;padding:0 16px;display:flex;position:fixed;top:10px;left:50%;transform:translate(-50%)}.nav-item{color:var(--text-dark);cursor:pointer;background:0 0;border:none;border-radius:20px;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .3s;display:flex}.nav-item:hover{color:var(--primary);background:#ff4d6d1a}.nav-item.active{background:var(--primary);color:var(--white)}.nav-item.active .nav-icon{color:var(--white);transform:scale(1.1)}.nav-icon{transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.landing-page{z-index:0;background-position:50%;background-size:cover;width:100vw;height:100vh;position:fixed;top:0;left:0}.landing-overlay{color:var(--white);text-align:center;background:linear-gradient(#0003 0%,#0009 100%);flex-direction:column;justify-content:center;align-items:center;padding:20px;display:flex;position:absolute;inset:0}.landing-title{text-shadow:2px 4px 8px #0006;margin-bottom:10px;font-size:4.5rem}.landing-subtitle{letter-spacing:6px;text-transform:uppercase;text-shadow:1px 2px 4px #0006;font-size:1.2rem;font-weight:300}.login-overlay{z-index:10;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.login-box{text-align:center;flex-direction:column;align-items:center;width:90%;max-width:360px;padding:40px 32px;display:flex}.digit-container{justify-content:center;gap:10px;margin-bottom:20px;display:flex}.digit-input{border:2px solid var(--primary-light);text-align:center;width:44px;height:56px;color:var(--primary-dark);caret-color:#0000;background:#fffc;border-radius:12px;outline:none;font-family:Be Vietnam Pro,sans-serif;font-size:1.4rem;font-weight:600;transition:border-color .2s,box-shadow .2s}.digit-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb,219, 112, 147), .2)}.digit-input:disabled{opacity:.6}.error-text{color:#e53e3e;margin-top:4px;font-family:Be Vietnam Pro,sans-serif;font-size:.85rem}.loading-text{color:var(--primary);margin-top:4px;font-family:Be Vietnam Pro,sans-serif;font-size:.85rem}@media (width<=600px){.landing-title{font-size:3rem}.landing-subtitle{letter-spacing:4px;font-size:.9rem}.top-nav{width:95%;height:46px;padding:0 8px}.nav-item{gap:4px;padding:4px 8px;font-size:.75rem}.nav-item span{display:none}}.counter-card{text-align:center;margin-bottom:24px;padding:40px 20px;position:relative;overflow:hidden}.counter-card:before{content:"";z-index:0;background:radial-gradient(circle,#fff6 0%,#0000 60%);width:200%;height:200%;position:absolute;top:-50%;left:-50%}.counter-content{z-index:1;position:relative}.avatar-row{justify-content:center;align-items:center;gap:16px;margin-bottom:24px;display:flex}.avatar{object-fit:cover;border:3px solid var(--white);width:80px;height:80px;box-shadow:var(--shadow-md);background:var(--bg-gradient-1);border-radius:50%}.heart-icon{color:var(--primary)}.days-number{background:linear-gradient(135deg, var(--primary), var(--primary-dark));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:16px 0;font-size:4.5rem;font-weight:700;line-height:1;display:inline-block}.days-label{color:var(--text-light);letter-spacing:2px;text-transform:uppercase;font-size:1.2rem;font-weight:500}.section-title{align-items:center;gap:8px;margin-bottom:16px;font-size:1.5rem;display:flex}.milestone-list{flex-direction:column;gap:12px;display:flex}.milestone-item{align-items:center;gap:16px;padding:16px;transition:transform .2s;display:flex}.milestone-item:hover{transform:translate(4px)}.milestone-date{background:var(--primary-light);color:var(--white);text-align:center;border-radius:12px;min-width:60px;padding:8px 12px;font-size:.9rem;font-weight:600}.milestone-info h4{margin-bottom:4px;font-family:Be Vietnam Pro,sans-serif;font-size:1rem}.milestone-info p{color:var(--text-light);font-size:.85rem}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px;padding:8px;display:grid}.gallery-item{aspect-ratio:1;box-shadow:var(--shadow-sm);cursor:pointer;border-radius:16px;transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden}.gallery-item:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)scale(1.02)}.gallery-item img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.gallery-item:hover img{transform:scale(1.1)}.chat-container{flex-direction:column;height:calc(100vh - 120px);display:flex}.chat-header{border-bottom:1px solid var(--glass-border);align-items:center;gap:12px;padding:16px;display:flex}.chat-header .avatar{border-width:2px;width:40px;height:40px}.chat-messages{flex-direction:column;flex:1;gap:16px;padding:16px;display:flex;overflow-y:auto}.message{border-radius:20px;max-width:75%;padding:12px 16px;font-size:.95rem;line-height:1.4;animation:.3s forwards fadeIn;position:relative}.message.sent{background:var(--primary);color:var(--white);border-bottom-right-radius:4px;align-self:flex-end}.message.received{background:var(--white);color:var(--text-dark);box-shadow:var(--shadow-sm);border-bottom-left-radius:4px;align-self:flex-start}.message-time{opacity:.7;text-align:right;margin-top:4px;font-size:.7rem;display:block}.chat-input{align-items:center;gap:12px;padding:16px;display:flex}.chat-input input{background:var(--white);box-shadow:inset 0 2px 4px #00000005, var(--shadow-sm);border:none;border-radius:30px;flex:1;padding:14px 20px;font-family:inherit;font-size:.95rem}.chat-input input:focus{outline:2px solid var(--primary-light)}.send-btn{background:var(--primary);color:#fff;cursor:pointer;width:46px;height:46px;box-shadow:var(--shadow-md);border:none;border-radius:50%;justify-content:center;align-items:center;transition:transform .2s,background .2s;display:flex}.send-btn:hover{background:var(--primary-dark);transform:scale(1.05)}.bucket-list{flex-direction:column;gap:12px;display:flex}.bucket-item{cursor:pointer;align-items:center;gap:16px;padding:16px;transition:background .2s;display:flex}.bucket-item.completed{opacity:.6}.bucket-item.completed .bucket-text{color:var(--text-light);text-decoration:line-through}.checkbox{border:2px solid var(--primary-light);color:#0000;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;transition:all .2s;display:flex}.bucket-item.completed .checkbox{background:var(--primary);border-color:var(--primary);color:#fff}.bucket-text{flex:1;font-size:1rem;transition:color .2s}.add-btn{border:2px dashed var(--primary-light);width:100%;color:var(--primary);cursor:pointer;background:0 0;border-radius:16px;justify-content:center;align-items:center;gap:8px;margin-top:16px;padding:16px;font-family:inherit;font-size:1rem;font-weight:600;transition:all .2s;display:flex}.add-btn:hover{border-color:var(--primary);background:#ff4d6d0d}.login-overlay{-webkit-backdrop-filter:blur(12px);z-index:9999;background:#0003;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.login-box{text-align:center;background:#ffffffb3;border:1px solid #fff9;flex-direction:column;align-items:center;width:90%;max-width:380px;padding:40px 30px;display:flex;box-shadow:0 25px 50px -12px #00000040}.digit-container{justify-content:center;gap:12px;width:100%;margin-bottom:16px;display:flex}.digit-input{border:2px solid var(--glass-border);text-align:center;width:45px;height:55px;color:var(--primary-dark);background:#fffc;border-radius:12px;font-size:1.5rem;font-weight:700;transition:all .2s;box-shadow:inset 0 2px 4px #00000005}.digit-input:focus{border-color:var(--primary);background:var(--white);outline:none;transform:translateY(-2px);box-shadow:0 0 0 4px #ff4d6d26}.error-text{color:#d90429;margin-top:8px;font-size:.85rem;font-weight:600}.loading-text{color:var(--primary-dark);margin-top:8px;font-size:.85rem;font-weight:600}@media (width<=380px){.digit-input{width:40px;height:50px;font-size:1.2rem}.digit-container{gap:8px}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
