:root{--color-primary:#7b2fbe;--color-primary-light:#7b2fbe33;--color-primary-mid:#7b2fbe88;--color-bg:#2d0a6e;--color-surface:#ffffff14;--color-surface-hover:#ffffff24;--color-text:#fff;--color-text-muted:#ffffffa6;--color-border:#ffffff26;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--nav-height:72px;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(160deg, var(--color-bg) 0%, #4a1080 100%);color:var(--color-text);min-height:100vh}#root{min-height:100vh}h1,h2,h3,h4{color:var(--color-text)}p{margin:0}a{color:inherit}button,input,select,textarea{font-family:inherit}.page{max-width:900px;padding:1.5rem 1rem calc(var(--nav-height) + 1.5rem);min-height:100vh;margin:0 auto}.card{background:var(--color-surface);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--color-border);margin-bottom:1rem;padding:1.25rem}.card-label{letter-spacing:.08em;color:var(--color-text-muted);text-transform:uppercase;margin-bottom:.75rem;font-size:.72rem;font-weight:600}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;transition:opacity .15s,transform .1s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-primary);color:#fff}.btn-secondary{background:var(--color-surface-hover);color:#fff;border:1px solid var(--color-border)}.btn-ghost{color:var(--color-text-muted);background:0 0}.btn-danger{color:#fff;background:#e53935}.btn-apple{color:#fff;background:#111}.btn-full{text-align:center;width:100%;display:block}.btn-half{flex:1}.btn-sm{border-radius:6px;padding:.4rem .9rem;font-size:.82rem}.action-row{gap:.75rem;margin:1rem 0;display:flex}.form-input,.form-textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;color:var(--color-text);background:#ffffff1a;outline:none;margin-bottom:.75rem;padding:.75rem 1rem;font-size:.95rem;transition:border-color .2s}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-muted)}.form-input:focus,.form-textarea:focus{border-color:var(--color-primary)}.form-row{gap:.5rem;display:flex}.form-row .form-input{margin-bottom:.75rem}.form-group{margin-bottom:.5rem}.form-error{color:#ff6b6b;margin:.4rem 0;font-size:.85rem}.form-success{color:#51cf66;margin:.4rem 0;font-size:.85rem}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex}.auth-card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);width:100%;max-width:400px;padding:2.5rem 2rem}.auth-title{margin-bottom:.4rem;font-size:1.8rem;font-weight:700}.auth-subtitle{color:var(--color-text-muted);margin-bottom:1.5rem;font-size:.9rem}.auth-form{flex-direction:column;display:flex}.auth-divider{text-align:center;color:var(--color-text-muted);margin:1rem 0;font-size:.85rem}.auth-footer{text-align:center;color:var(--color-text-muted);margin-top:1rem;font-size:.9rem}.auth-footer a{color:var(--color-primary);font-weight:600;text-decoration:none}.forgot-link{text-align:right;color:var(--color-text-muted);margin-bottom:.75rem;font-size:.85rem;text-decoration:none;display:block}.navbar{height:var(--nav-height);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--color-border);z-index:100;background:#1e083cf2;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{color:var(--color-text-muted);border-radius:var(--radius-sm);flex-direction:column;align-items:center;gap:3px;padding:.5rem;font-size:.7rem;font-weight:500;text-decoration:none;transition:color .2s;display:flex}.nav-item--active{color:var(--color-text)}.nav-item--active .nav-icon{background:var(--color-primary);border-radius:12px}.nav-icon{padding:4px 10px;font-size:1.4rem}.page-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-top:.5rem;display:flex}.header-left{align-items:center;gap:.75rem;display:flex}.header-actions{gap:.5rem;display:flex}.page-icon{font-size:2rem}.page-title{font-size:1.5rem;font-weight:700}.page-subtitle{color:var(--color-text-muted);font-size:.85rem}.icon-btn{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.2rem;display:flex}.dashboard-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem;padding-top:.5rem;display:flex}.greeting-text{color:var(--color-text-muted);font-size:.95rem}.family-name{font-size:1.6rem;font-weight:700}.countdown{justify-content:center;align-items:center;gap:.5rem;margin:.5rem 0;display:flex}.countdown-unit{flex-direction:column;align-items:center;display:flex}.countdown-value{border-radius:var(--radius-sm);text-align:center;background:#ffffff26;min-width:70px;padding:.3rem .8rem;font-size:2.8rem;font-weight:700}.countdown-unit span:last-child{text-transform:uppercase;color:var(--color-text-muted);margin-top:4px;font-size:.7rem}.countdown-sep{color:var(--color-text-muted);font-size:2.5rem;font-weight:700}.countdown-tagline{text-align:center;color:var(--color-text-muted);margin-top:.5rem;font-size:.85rem}.countdown-card{text-align:center}.event-card{padding:1rem 1.25rem}.event-label{letter-spacing:.1em;color:var(--color-text-muted);margin-bottom:.5rem;font-size:.7rem;font-weight:700}.event-content{align-items:center;gap:1rem;display:flex}.event-days{color:var(--color-primary);min-width:60px;font-size:2rem;font-weight:700}.event-title{font-size:1rem;font-weight:600}.event-desc{color:var(--color-text-muted);font-size:.85rem}.quote-card{color:var(--color-text-muted);text-align:center;font-style:italic}.quote-text{font-size:.9rem;line-height:1.5}.section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:.75rem;font-size:.78rem;font-weight:700}.section-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.see-all{color:var(--color-primary);font-size:.85rem;text-decoration:none}.tiles-grid{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}.tile{background:var(--color-surface);border-radius:var(--radius-md);color:var(--color-text);border:1px solid var(--color-border);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.2rem .5rem;text-decoration:none;transition:background .2s;display:flex}.tile:hover{background:var(--color-surface-hover)}.tile-icon{background:var(--tile-color);border-radius:12px;padding:8px;font-size:1.6rem}.tile-label{font-size:.8rem;font-weight:600}.messages-preview{margin-top:1rem}.message-item{background:var(--color-surface);border-radius:var(--radius-sm);align-items:flex-start;gap:.75rem;margin-bottom:.5rem;padding:.75rem;display:flex}.message-star{font-size:1.1rem}.message-content{font-size:.9rem;font-style:italic}.message-from{color:var(--color-text-muted);margin-top:2px;font-size:.75rem}.empty-state{text-align:center;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem 1rem;display:flex}.empty-icon{opacity:.5;font-size:3rem}.empty-title{color:var(--color-text);font-size:1.1rem;font-weight:600}.empty-sub{font-size:.9rem}.filter-chips{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.chip{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;border-radius:20px;padding:.35rem .9rem;font-size:.82rem}.chip--active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.chip--member{align-items:center;gap:.4rem;display:flex}.chip-avatar{object-fit:cover;border-radius:50%;width:18px;height:18px}.search-input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text);outline:none;margin-bottom:.75rem;padding:.7rem 1rem;font-size:.95rem}.search-input::placeholder{color:var(--color-text-muted)}.albums-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;display:grid}.album-card{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);cursor:pointer;overflow:hidden}.album-cover{background:var(--color-surface-hover);justify-content:center;align-items:center;height:130px;font-size:2.5rem;display:flex}.album-cover img{object-fit:cover;width:100%;height:100%}.album-info{padding:.75rem}.album-name{font-size:.95rem;font-weight:600}.album-meta{color:var(--color-text-muted);margin-top:2px;font-size:.78rem}.mood-grid{flex-wrap:wrap;gap:.5rem;display:flex}.mood-btn{border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;background:0 0;border:2px solid #0000;flex-direction:column;align-items:center;padding:.5rem .75rem;transition:border-color .15s,background .15s;display:flex}.mood-btn--active{border-color:var(--color-primary);background:var(--color-primary-light)}.mood-emoji{font-size:2rem}.mood-label{margin-top:2px;font-size:.72rem}.prompts-row{gap:.5rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.prompt-card{background:var(--color-surface-hover);border-radius:var(--radius-sm);border:1px solid var(--color-border);text-align:left;min-width:130px;max-width:150px;color:var(--color-text);cursor:pointer;padding:.75rem;font-size:.82rem;line-height:1.4}.prompt-icon{margin-bottom:.3rem;display:block}.entries-list{flex-direction:column;gap:.75rem;display:flex}.entry-card{background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid var(--color-border);gap:.75rem;padding:.85rem;display:flex}.entry-mood{font-size:1.8rem}.entry-content{font-size:.9rem;line-height:1.4}.entry-date{color:var(--color-text-muted);margin-top:4px;font-size:.75rem}.prompt-tag{color:var(--color-text-muted);margin-bottom:.5rem;font-size:.85rem;font-style:italic}.form-textarea{resize:vertical}.calendar-nav{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.calendar-month{font-size:1.1rem;font-weight:600}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-day-label{text-align:center;color:var(--color-text-muted);letter-spacing:.05em;padding:.4rem 0;font-size:.72rem;font-weight:600}.calendar-cell{background:var(--color-surface);cursor:pointer;border-radius:6px;min-height:64px;padding:.4rem;transition:background .15s}.calendar-cell:hover{background:var(--color-surface-hover)}.calendar-cell--today{border:1px solid var(--color-primary);background:#7b2fbe40}.calendar-cell--other{opacity:.3}.calendar-date{font-size:.85rem;font-weight:500}.calendar-event-dot{background:var(--color-primary);border-radius:50%;width:6px;height:6px;margin-top:3px}.events-list{margin-top:1rem}.event-item{background:var(--color-surface);border-radius:var(--radius-sm);gap:.75rem;margin-bottom:.5rem;padding:.85rem;display:flex}.event-item-icon{font-size:1.4rem}.event-item-title{font-size:.95rem;font-weight:600}.event-item-desc{color:var(--color-text-muted);font-size:.82rem}.event-item-time{color:var(--color-primary);margin-top:2px;font-size:.8rem}.med-list{flex-direction:column;gap:1rem;display:flex}.med-card{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);padding:1.1rem}.med-header{justify-content:space-between;align-items:center;margin-bottom:.25rem;display:flex}.med-name{font-size:1rem;font-weight:700}.med-child{color:var(--color-text-muted);font-size:.8rem}.med-dose{color:var(--color-text-muted);margin-bottom:.75rem;font-size:.85rem}.med-schedule{flex-direction:column;gap:.5rem;display:flex}.dose-row{background:var(--color-surface-hover);border-radius:var(--radius-sm);align-items:center;gap:.75rem;padding:.5rem .75rem;display:flex}.dose-icon{font-size:1.2rem}.dose-time{flex:1;font-size:.9rem}.dose-check{border:2px solid var(--color-border);cursor:pointer;width:28px;height:28px;color:var(--color-text-muted);background:0 0;border-radius:50%;font-size:.9rem}.dose-check--done{color:#51cf66;background:#51cf6626;border-color:#51cf66}.refill-banner{border-radius:var(--radius-sm);color:orange;background:#ffa50026;border:1px solid #ffa5004d;margin-top:.75rem;padding:.5rem .75rem;font-size:.82rem}.progress-bar-wrapper{background:var(--color-surface);border-radius:20px;height:8px;margin-bottom:1.25rem;overflow:hidden}.progress-bar{background:var(--color-primary);border-radius:20px;height:100%;transition:width .4s}.bucket-list{flex-direction:column;gap:.6rem;margin-bottom:1.25rem;display:flex}.bucket-item{background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid var(--color-border);align-items:center;gap:.75rem;padding:.85rem;display:flex}.bucket-item--done{opacity:.6}.bucket-check{border:2px solid var(--color-border);cursor:pointer;width:28px;height:28px;color:var(--color-text-muted);background:0 0;border-radius:50%;flex-shrink:0;font-size:.9rem}.bucket-check--done{color:#51cf66;background:#51cf6626;border-color:#51cf66}.bucket-title{flex:1;font-size:.95rem}.bucket-title--done{color:var(--color-text-muted);text-decoration:line-through}.bucket-photo{object-fit:cover;border-radius:var(--radius-sm);width:48px;height:48px}.members-list{flex-direction:column;gap:.65rem;margin-bottom:1.25rem;display:flex}.member-card{background:var(--color-surface);border-radius:var(--radius-sm);border:1px solid var(--color-border);align-items:center;gap:.85rem;padding:.85rem;display:flex}.member-avatar{background:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.2rem;font-weight:700;display:flex;overflow:hidden}.member-avatar img{object-fit:cover;width:100%;height:100%}.member-info{flex:1}.member-name{font-size:.95rem;font-weight:600}.member-role{color:var(--color-text-muted);font-size:.8rem}.member-age{color:var(--color-text-muted);font-size:.78rem}.theme-swatches{flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem;display:flex}.swatch{cursor:pointer;border:3px solid #0000;border-radius:50%;width:40px;height:40px;transition:border-color .15s}.swatch--active{border-color:#fff}.mascot-row{gap:.75rem;margin-bottom:1rem;display:flex}.mascot-btn{background:var(--color-surface);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;border:2px solid #0000;flex-direction:column;align-items:center;gap:4px;padding:.6rem .9rem;font-size:1.5rem;display:flex}.mascot-btn span{text-transform:capitalize;font-size:.72rem}.mascot-btn--active{border-color:var(--color-primary);background:var(--color-primary-light)}.settings-row{border-bottom:1px solid var(--color-border);justify-content:space-between;padding:.6rem 0;font-size:.9rem;display:flex}.settings-row:last-child{border-bottom:none}.recap-header{text-align:center;padding:2rem 0 1rem}.recap-title{font-size:2rem;font-weight:700}.recap-sub{color:var(--color-text-muted);margin-top:.3rem}.recap-stats{justify-content:center;gap:1rem;margin:1.5rem 0;display:flex}.stat-card{background:var(--color-surface);border-radius:var(--radius-md);text-align:center;border:1px solid var(--color-border);flex:1;padding:1.5rem 1rem}.stat-value{color:var(--color-primary);font-size:2.4rem;font-weight:700;display:block}.stat-label{color:var(--color-text-muted);margin-top:4px;font-size:.8rem}.recap-actions{flex-direction:column;gap:.75rem;display:flex}.modal-overlay{z-index:200;background:#0009;justify-content:center;align-items:flex-end;padding:1rem;display:flex;position:fixed;inset:0}.modal{border-radius:var(--radius-lg) var(--radius-lg) 0 0;border:1px solid var(--color-border);background:#2d0a6e;width:100%;max-width:500px;max-height:90vh;padding:2rem 1.5rem;overflow-y:auto}.modal h2{margin-bottom:1.25rem;font-size:1.3rem}.modal-actions{gap:.75rem;margin-top:1rem;display:flex}.modal-mood{justify-content:space-between;margin-bottom:1rem}.loading-screen{min-height:100vh;color:var(--color-text-muted);justify-content:center;align-items:center;font-size:1.2rem;display:flex}@media (width>=600px){.modal{border-radius:var(--radius-lg);align-self:center}.modal-overlay{align-items:center}}@media (width>=900px){.page{padding:2rem 2rem calc(var(--nav-height) + 2rem)}.tiles-grid{gap:1rem}}.counter{color:var(--accent);background:var(--accent-bg);border:2px solid #0000;border-radius:5px;margin-bottom:24px;padding:5px 10px;font-size:16px;transition:border-color .3s}.counter:hover{border-color:var(--accent-border)}.counter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero{position:relative}.hero .base,.hero .framework,.hero .vite{margin:0 auto;inset-inline:0}.hero .base{z-index:0;width:170px;position:relative}.hero .framework,.hero .vite{position:absolute}.hero .framework{z-index:1;height:28px;top:34px;transform:perspective(2000px)rotate(300deg)rotateX(44deg)rotateY(39deg)scale(1.4)}.hero .vite{z-index:0;width:auto;height:26px;top:107px;transform:perspective(2000px)rotate(300deg)rotateX(40deg)rotateY(39deg)scale(.8)}#center{flex-direction:column;flex-grow:1;place-content:center;place-items:center;gap:25px;display:flex}@media (width<=1024px){#center{gap:18px;padding:32px 20px 24px}}#next-steps{border-top:1px solid var(--border);text-align:left;display:flex}#next-steps>div{flex:1 1 0;padding:32px}@media (width<=1024px){#next-steps>div{padding:24px 20px}}#next-steps .icon{width:22px;height:22px;margin-bottom:16px}@media (width<=1024px){#next-steps{text-align:center;flex-direction:column}}#docs{border-right:1px solid var(--border)}@media (width<=1024px){#docs{border-right:none;border-bottom:1px solid var(--border)}}#next-steps ul{gap:8px;margin:32px 0 0;padding:0;list-style:none;display:flex}#next-steps ul .logo{height:18px}#next-steps ul a{color:var(--text-h);background:var(--social-bg);border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-size:16px;text-decoration:none;transition:box-shadow .3s;display:flex}#next-steps ul a:hover{box-shadow:var(--shadow)}#next-steps ul a .button-icon{width:18px;height:18px}@media (width<=1024px){#next-steps ul{flex-wrap:wrap;justify-content:center;margin-top:20px}#next-steps ul li{flex:calc(50% - 8px)}#next-steps ul a{box-sizing:border-box;justify-content:center;width:100%}}#spacer{border-top:1px solid var(--border);height:88px}@media (width<=1024px){#spacer{height:48px}}.ticks{width:100%;position:relative}.ticks:before,.ticks:after{content:"";border:5px solid #0000;position:absolute;top:-4.5px}.ticks:before{border-left-color:var(--border);left:0}.ticks:after{border-right-color:var(--border);right:0}
