:root{--bg:#fce9e2;--card:#fffaf7;--ink:#3b2a26;--muted:#9a7f77;--line:#f0d6cc;--accent:#e0607e;--accent-soft:#fbd3dc;--accent-ink:#fff;--green:#4f9a5c;--danger:#c4453c;--radius:14px;--nav-h:64px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent;min-height:100dvh;font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}img.hero{image-rendering:pixelated;max-width:100%;height:auto;margin:0 auto;display:block}svg.px{image-rendering:pixelated;shape-rendering:crispedges;display:block}h1{text-wrap:balance;margin:0;font-size:28px;line-height:1.15}.page{max-width:560px;padding:calc(env(safe-area-inset-top) + 16px) 14px calc(env(safe-area-inset-bottom) + var(--nav-h) + 24px);margin:0 auto}.stack{gap:12px;display:grid}.nav{z-index:10;background:var(--card);border-top:3px solid var(--line);padding:6px max(4px, env(safe-area-inset-right)) calc(env(safe-area-inset-bottom) + 8px) max(4px, env(safe-area-inset-left));grid-template-columns:repeat(6,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.nav a{min-width:0;color:var(--muted);justify-items:center;gap:2px;padding:4px 0;font-size:10.5px;display:grid}.nav a.on{color:var(--accent);font-weight:600}.nav a.on svg{transform:translateY(-2px)}.login{max-width:400px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 16px) 16px 24px;flex-direction:column;justify-content:center;margin:0 auto;display:flex}.login h1{text-align:center;margin:8px 0 16px}.hero-login{width:240px}.login-form{gap:12px;display:grid}.login-form label{color:var(--muted);gap:4px;font-size:14px;display:grid}.card{background:var(--card);border-radius:var(--radius);gap:10px;padding:14px;display:grid}.card.pixel{box-shadow:0 -3px 0 0 var(--card), 0 3px 0 0 var(--card), -3px 0 0 0 var(--card), 3px 0 0 0 var(--card), 0 6px 0 0 var(--line), 3px 3px 0 0 var(--line), -3px 3px 0 0 var(--line);border-radius:0;margin:3px}.card h3{text-wrap:balance;margin:0;font-size:17px;line-height:1.2}.sub{color:var(--muted);margin:0;font-size:14px}input,textarea{border:2px solid var(--line);background:#fff;border-radius:12px;outline:none;width:100%;padding:10px 12px;font-size:16px}input:focus,textarea:focus{border-color:var(--accent)}.btn{background:var(--line);white-space:nowrap;border:0;border-radius:12px;padding:10px 14px;font-weight:600}.btn.primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 3px #b94763}.btn.primary:active{transform:translateY(2px);box-shadow:0 1px #b94763}.btn.danger{color:var(--danger);background:0 0}.btn.ghost{color:var(--muted);background:0 0;padding:6px}.btn.small{font-size:13px;font-weight:500}.btn:disabled{opacity:.5}.error{color:var(--danger);margin:0;font-size:15px}.hint{color:var(--muted);margin:0;font-size:14px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:2px solid var(--line);background:#fff;border-radius:999px;padding:5px 11px;font-size:14px}.chip.on{border-color:var(--accent);background:var(--accent-soft)}.row{align-items:center;gap:8px;display:flex}.top{justify-content:space-between;align-items:center;gap:8px;display:flex}.toggle{color:var(--muted);align-items:center;gap:8px;font-size:14px;display:flex}.toggle input{width:18px;height:18px;accent-color:var(--accent)}.soon{letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.anim{aspect-ratio:1;max-width:100%;margin:0 auto;display:block;position:relative}.anim img{object-fit:contain;object-position:50% 100%;opacity:0;width:100%;height:100%;image-rendering:pixelated;transition:opacity .2s;position:absolute;inset:0}.anim img.on{opacity:1}.hero-anim{aspect-ratio:4/5}.hero-anim.square{aspect-ratio:1}.anim.face img{transition:none}.greet{text-align:center;gap:2px;padding-top:6px;display:grid;position:relative}.greet .date{color:var(--muted);font-size:14px}.greet .hero-anim{margin-top:4px}.floaty{opacity:0;animation:4.5s ease-in infinite float;position:absolute;bottom:40px}.floaty:first-of-type{animation-delay:0s;left:18%}.floaty:nth-of-type(2){animation-delay:1.5s;left:74%}.floaty:nth-of-type(3){animation-delay:3s;left:48%}@keyframes float{0%{opacity:0;transform:translateY(0)scale(.8)}15%{opacity:1}to{opacity:0;transform:translateY(-140px)scale(1.15)}}.note{background:var(--accent-soft);overflow-wrap:anywhere;padding:12px 14px;font-size:16px;position:relative}.note:after{content:"";border:9px solid #0000;border-right-color:var(--card);border-bottom-color:var(--card);position:absolute;bottom:0;right:0}.note small{color:var(--muted);margin-top:4px;font-size:12px;display:block}.moods{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.mood{background:var(--bg);text-align:center;overflow-wrap:anywhere;color:var(--muted);border:2px solid #0000;border-radius:12px;grid-template-rows:52px auto;align-content:start;justify-items:center;gap:4px;padding:6px 2px;font-size:11px;line-height:1.2;display:grid}.mood.on{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.mood img.face,.mood .anim.face{width:52px;height:52px;display:block}.mood.on .face{animation:.4s hop}@keyframes hop{40%{transform:translateY(-6px)}}.partner-line{background:var(--bg);border-radius:12px;align-items:center;gap:10px;padding:8px 10px;font-size:14px;display:flex}.card .partner-line{background:var(--bg)}.stack>.partner-line{background:var(--card)}.partner-line svg,.partner-line img{flex:none}.partner-line img{image-rendering:pixelated}.care{text-align:center;justify-items:center}.care .btn{width:100%}.sent{color:var(--accent);align-items:center;gap:8px;margin:0;font-weight:600;display:flex}.stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stat{background:var(--card);border-radius:var(--radius);gap:2px;padding:10px 12px;display:grid}.stat b{font-size:22px}.stat span{color:var(--muted);font-size:13px}.head{align-items:end;gap:6px;margin-top:-6px;display:flex}.head .hero-anim{flex:none;margin:0}.head p{color:var(--muted);margin:2px 0 14px;font-size:14px}.tabs{background:var(--line);border-radius:14px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.tab{color:var(--muted);background:0 0;border:0;border-radius:10px;padding:9px;font-weight:600}.tab.active{background:var(--card);color:var(--ink)}.badge{background:var(--accent);color:#fff;border-radius:4px;min-width:20px;margin-left:6px;padding:0 6px;font-size:12px;font-weight:700;line-height:20px;display:inline-block}.add-row{gap:8px;display:flex}.add-row .btn{padding:0 16px;font-size:22px;line-height:1}.items{gap:8px;margin:0;padding:0;list-style:none;display:grid}.item{background:var(--card);border-radius:var(--radius);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 12px;animation:.25s pop;display:grid}@keyframes pop{0%{opacity:.4;transform:scale(.96)}}.item.open{grid-template-columns:auto 1fr}.check{border:2px solid var(--accent);background:#fff;border-radius:6px;place-items:center;width:30px;height:30px;padding:0;display:grid}.check.checked{background:var(--accent-soft);border-color:var(--accent-soft)}.item-body{cursor:pointer;gap:1px;min-width:0;display:grid}.item-text{overflow-wrap:anywhere}.item-comment{color:var(--muted);overflow-wrap:anywhere;font-size:13px}.who{color:var(--accent);font-size:12px}.move-btn{background:var(--bg);color:var(--accent);border:0;border-radius:10px;padding:5px 9px;font-size:13px;font-weight:600}.edit{grid-column:1/-1;gap:8px;display:grid}.edit-actions{flex-wrap:wrap;gap:6px;display:flex}.section-title{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:8px 4px -4px;font-size:14px;font-weight:700}.items.done .item{border:2px dashed var(--line);background:0 0}.items.done .item-text{color:var(--muted);text-decoration:line-through}.empty{text-align:center;color:var(--muted);margin:8px 0}.week{text-align:center;color:var(--muted);grid-template-columns:repeat(7,1fr);gap:4px;font-size:11px;display:grid}.day{color:var(--muted);background:0 0;border:0;border-radius:8px;justify-items:center;gap:2px;padding:2px 0;font-size:11px;display:grid}.day.today{color:var(--accent);font-weight:700}.legend{color:var(--muted);flex-wrap:wrap;gap:6px 14px;padding:0 4px;font-size:13px;display:flex}.legend i{width:10px;height:10px;margin-right:5px;display:inline-block}.add-habit{border:2px dashed var(--accent);width:100%;color:var(--accent);background:0 0}.list-more{background:var(--card);border-radius:var(--radius);display:grid;overflow:hidden}.list-more div{border-bottom:2px solid var(--bg);justify-content:space-between;gap:8px;padding:12px 14px;display:flex}.list-more div:last-child{border-bottom:0}.list-more span{color:var(--muted);white-space:nowrap;font-size:13px}#fx-layer{pointer-events:none;z-index:50;position:fixed;inset:0;overflow:hidden}.fx-heart{animation:1s ease-out forwards fly;position:absolute}@keyframes fly{to{transform:translate(var(--dx), var(--dy)) rotate(var(--r));opacity:0}}.fx-confetti{background:var(--col);width:7px;height:7px;animation:fall var(--t) linear forwards;position:absolute;top:-10px}@keyframes fall{to{transform:translate(var(--dx), 105vh) rotate(540deg)}}@media (prefers-reduced-motion:reduce){.floaty,#fx-layer{display:none}.anim img{transition:none}.item,.mood.on .face{animation:none}}.plan{background:var(--bg);border-radius:12px;align-items:center;gap:6px;padding:8px 6px 8px 12px;animation:.25s pop;display:flex}.plan.both{background:var(--accent-soft)}.plan-body{overflow-wrap:anywhere;flex:1;gap:1px;min-width:0;display:grid}.plan .meta{color:var(--muted);font-size:12px}.like{background:0 0;border:0;place-items:center;padding:6px;display:grid}.like.on svg{animation:.4s hop}.item.wish{grid-template-columns:1fr auto}.list-more a{border-bottom:2px solid var(--bg);color:var(--ink);justify-content:space-between;gap:8px;padding:12px 14px;font-weight:600;display:flex}.list-more a span{color:var(--accent)}.recipe-top{cursor:pointer;align-items:center;gap:10px;display:flex}.thumb{object-fit:cover;background:var(--bg);border-radius:8px;flex:none;width:56px;height:56px}.recipe-img{object-fit:contain;background:var(--bg);border-radius:8px;width:100%;max-height:70vh;display:block}.recipe-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.file{border:2px dashed var(--line);color:var(--accent);cursor:pointer;background:#fff;border-radius:12px;place-items:center;padding:14px;font-weight:600;display:grid}.file input{display:none}.file img{border-radius:8px;max-width:100%;max-height:200px}a.chip{color:var(--accent)}.event-top{cursor:pointer;gap:8px;display:grid}.event-cover{aspect-ratio:16/9;object-fit:cover;background:var(--bg);border-radius:8px;width:100%;display:block}.photo-grid{grid-template-columns:repeat(3,1fr);gap:4px;width:100%;display:grid}.photo-grid img{aspect-ratio:1;object-fit:cover;border-radius:6px;width:100%;display:block}.photo-grid.big{grid-template-columns:repeat(2,1fr)}.ph{position:relative}.ph.cover img{outline:3px solid var(--accent);outline-offset:-3px}.ph-actions{gap:4px;display:flex;position:absolute;bottom:4px;right:4px}.ph-actions button{color:var(--ink);background:#fffaf7eb;border:0;border-radius:8px;padding:2px 8px;font-size:12px}input[type=date]{min-height:44px}.card.ai h3{color:var(--ink)}select{font:inherit;border:2px solid var(--line);background:#fff;border-radius:10px;max-width:55%;padding:6px 8px}.note .recipe-body{margin-top:4px;display:block}.week.month{grid-template-columns:repeat(7,1fr);row-gap:6px}.day:disabled{opacity:1;cursor:default}.steps-help{gap:8px;display:grid}.steps-help ol{gap:4px;margin:0;padding-left:18px;display:grid}.toast{z-index:30;left:50%;bottom:calc(env(safe-area-inset-bottom) + var(--nav-h) + 12px);background:var(--card);border-radius:var(--radius);border:3px solid var(--accent);gap:8px;width:min(440px,100% - 28px);max-height:60vh;padding:14px;animation:.25s ease-out toast-in;display:grid;position:fixed;overflow:auto;transform:translate(-50%);box-shadow:0 10px 30px #3b2a2640!important}.toast .top{justify-content:space-between;align-items:center;gap:8px;display:flex}.toast h3{margin:0;font-size:17px}.toast ul{gap:6px;margin:0;padding-left:20px;font-size:15px;display:grid}.toast .q{background:var(--accent-soft);border-radius:10px;margin:0;padding:8px 10px;font-size:15px}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}.tip-list{gap:6px;margin:0;padding-left:20px;font-size:15px;display:grid}.ai-tips{background:var(--bg);border-radius:12px;gap:6px;padding:10px 12px;display:grid}.found{grid-column:1/-1;justify-items:start;gap:6px;display:grid}.found-row{background:var(--card);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:6px 10px;display:flex}.found-row a{overflow-wrap:anywhere;min-width:0;font-size:14px;display:grid}.quiz-q{gap:6px;display:grid}.couple .top{justify-content:space-between;align-items:center;display:flex}.couple .kind{color:var(--accent);background:var(--accent-soft);border-radius:8px;padding:2px 8px;font-size:13px;font-weight:700}.couple h3{margin:0}.couple-body{white-space:pre-line;margin:0;font-size:15px}.us-link{align-items:center;gap:10px;display:flex}.us-link b,.us-link .sub{display:block}.todo-add{gap:8px}.todo-add .chips{align-items:center}.who-tag{background:var(--bg);color:var(--muted);border-radius:6px;justify-self:start;padding:1px 7px;font-size:12px;font-weight:600}.who-tag.me{background:var(--accent-soft);color:var(--accent)}.who-tag.partner{color:var(--green);background:#dcefe0}.chip .badge{min-width:18px;margin-left:4px;line-height:18px}.question .top{justify-content:space-between;align-items:center;display:flex}.question h3{margin:0}.q-text{margin:0;font-size:17px;font-weight:600}.answer{background:var(--bg);overflow-wrap:anywhere;white-space:pre-line;border-radius:12px;padding:8px 12px}.answer.mine{background:var(--accent-soft)}.answer small{color:var(--muted);font-size:12px;font-weight:600;display:block}.ci-form{gap:10px;display:grid}.ci-form label{gap:4px;font-size:15px;display:grid}.ci-line{margin:2px 0 0}.ci-line b{color:var(--muted);font-size:13px;font-weight:600;display:block}.date-card .top{align-items:center;gap:10px;display:flex}.date-icon{font-size:26px}.date-card .meta{color:var(--muted);font-size:13px}.soon-date{outline:3px solid var(--accent-soft)}.partner-line.warn{background:var(--accent-soft)}select{border:2px solid var(--line);width:100%;font:inherit;background:#fff;border-radius:12px;margin-top:4px;padding:9px 10px}.goal .top{cursor:pointer;justify-content:space-between;align-items:center;display:flex}.goal h3{margin:0}.goal.done{opacity:.8}.bar{background:var(--bg);border-radius:4px;height:14px;overflow:hidden}.bar span{background:repeating-linear-gradient(90deg, var(--accent) 0 10px, #e9788f 10px 12px);height:100%;transition:width .4s;display:block}.item.step{background:var(--bg);grid-template-columns:auto 1fr auto;padding:6px 8px}.done-step .item-text{color:var(--muted);text-decoration:line-through}.place-img{object-fit:cover;border-radius:10px;width:100%;max-height:180px}.capsule .top{align-items:center;gap:10px;display:flex}.capsule .meta{color:var(--muted);font-size:13px}.capsule.open{border:2px dashed var(--accent)}.tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.tile{background:var(--bg);border-radius:12px;justify-items:center;gap:2px;padding:8px 2px;font-size:24px;display:grid;position:relative}.tile span{color:var(--ink);font-size:11.5px}.tile .badge{margin:0;font-style:normal;position:absolute;top:2px;right:2px}a.partner-line{color:inherit}input[type=date]{appearance:none;box-sizing:border-box;text-align:left;min-width:0;max-width:100%;display:block}input[type=date]::-webkit-date-and-time-value{text-align:left}.greet.small{text-align:left;align-items:end;gap:8px;display:flex}.greet.small .hero-anim{flex:none;margin:0}.greet.small h1{margin:0;font-size:22px}.feed{gap:6px;margin:0;padding:0;list-style:none;display:grid}.feed-item{background:var(--card);color:inherit;border-radius:12px;align-items:center;gap:10px;padding:9px 12px;animation:.25s pop;display:flex}.feed-item.thanks{background:var(--accent-soft)}.feed-icon{flex:none;font-size:20px}.feed-body{overflow-wrap:anywhere;min-width:0;font-size:15px;display:grid}.feed-body small{color:var(--muted);font-size:12px}a.partner-line{justify-content:flex-start}.stack>.tiles .tile{background:var(--card)}.ev-video{justify-items:end;gap:4px;display:grid}.ev-video video{background:#000;border-radius:10px;width:100%;max-height:70vh}.ev-file{background:var(--bg);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.ev-file a{color:inherit;overflow-wrap:anywhere;display:grid}.cal-top{justify-content:space-between;align-items:center;display:flex}.cal-top b:first-letter{text-transform:uppercase}.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;margin-top:8px;display:grid}.cal-wd{text-align:center;color:var(--muted);font-size:12px}.cal-day{aspect-ratio:1;color:var(--ink);background:#fff;border:2px solid #0000;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;padding:0;font-size:15px;display:flex;position:relative}.cal-day i{height:10px;color:var(--accent);font-size:10px;font-style:normal;line-height:1}.cal-day.today{border-color:var(--line);font-weight:700}.cal-day.sel{border-color:var(--accent)}.cal-day.period{color:#fff;background:#f7a8b8}.cal-day.period i{color:#fff}.cal-day.predicted{background:repeating-linear-gradient(45deg,#fde3ea,#fde3ea 4px,#fff 4px 8px)}
