/* A brighter memory garden. All artwork is functional CSS / SVG geometry. */
:root{background:#fffaf6;color:#494050;--green:#81546f;--muted:#716476;--line:#eadfe4;--pink:#f6c7d7;--mint:#ccebdc;--lilac:#dfd3f3;--peach:#ffe2c5;--sky:#d8eaf6}
body{background:radial-gradient(ellipse at 12% 0,#ffe6dc80,transparent 40%),radial-gradient(ellipse at 94% 22%,#e5def66b,transparent 40%),#fffaf6}
header{height:84px;border-color:#eee1e6;background:#fffaf8b3}
.brand{color:#684e69}.brand-mark{background:#d9c3ec;color:#684779;border-radius:17px 17px 12px 12px}.brand small{font-size:.65rem;letter-spacing:.18em}
nav button{border-radius:20px;color:#796d7c;min-width:100px}nav .active{background:#f4e0eb;color:#754768}nav .active:after{display:none}
main{padding-top:20px}.local-label{color:#776c78}.page-heading{margin-top:25px}
.memory-cover{position:relative;text-align:center;padding:15px 16px 26px;max-width:640px;margin:auto}
.cover-people{display:flex;justify-content:center;align-items:center;gap:15px;margin-bottom:14px}
.cover-person{display:flex;align-items:center;gap:8px;font-size:.875rem}.cover-person .avatar{width:31px;height:31px;font-size:.875rem}
.cover-heart{font-size:25px;color:#b56b86}.memory-cover h1{font-size:1.85rem;font-weight:600;letter-spacing:.06em;margin:0 0 8px;color:#5f4b64}
.together-days{font-size:.9rem;margin:0;color:#806d81}.together-days b{font-family:Georgia,serif;font-weight:400;font-size:1.8rem;color:#a86380;padding:0 5px}
.cover-flower{position:absolute;pointer-events:none;opacity:.8}.cover-flower .blossom-mark{width:40px;height:40px}.cover-flower.one{left:15%;top:57px;transform:rotate(-20deg)}.cover-flower.two{right:13%;bottom:25px;transform:rotate(17deg) scale(.65)}
.timeline-panel{position:relative;background:radial-gradient(ellipse at 15% 30%,#e1f0fb9c,transparent 45%),radial-gradient(ellipse at 82% 20%,#fde1e8a6,transparent 40%),linear-gradient(175deg,#fffdfa 45%,#f2f7e9);border:1px solid #ece5dc;border-radius:32px;overflow:hidden}
.timeline-toolbar{padding:14px 24px 5px;min-height:59px}.season-label{display:flex;align-items:center;gap:8px;color:#6f7768;font-size:.875rem}.season-label svg{color:#789b7c}.timeline-toolbar>button{border:0;border-radius:18px;background:#ffffffa8;font-size:.8rem;color:#78647a;padding:8px 13px}
.browse-options{padding:14px 24px;background:#fffafad9;border-bottom:1px solid #eee4e7}.browse-options .filters{margin-bottom:0}.browse-options .toolbar-actions{justify-content:flex-end}.filters select{background:#fff;border:1px solid #bcabbf;border-radius:13px;color:#6d5d72}.toolbar-actions button:last-child{background:#eadff4}.filters label{margin-bottom:10px}
.timeline-scroll{padding:0 24px;scrollbar-color:#d9becb transparent}.timeline-track{padding:0;position:relative;min-height:460px;align-items:stretch}
.day-column{width:292px;height:460px;position:relative;isolation:isolate}.tree-art{position:absolute;width:292px;height:460px;inset:0;z-index:-1;overflow:visible;pointer-events:none}
.branch{position:absolute;margin:0;width:228px;left:23px}.branch.top{height:auto;top:38px;padding:0;display:block}.branch.bottom{height:auto;top:310px;left:52px;padding:0;width:215px}.branch.top:after,.branch.bottom:has(.memory-preview):before{display:none}
.axis{position:absolute;left:0;top:230px;height:auto;border:0;width:100%}.axis time{top:24px;left:55px;background:#fff9ed;border:1px solid #eddbc4;color:#826954;padding:5px 12px;border-radius:30px;font-size:.8rem;box-shadow:0 2px 0 #e9d8bf55}.gap{top:-18px;right:0;font-size:.75rem;color:#786951}
.memory-preview{position:relative;border:1px solid #e3c3d0;background:#fbe0e9;border-radius:35px 35px 35px 9px;min-height:128px;padding:18px 19px 16px;gap:10px;box-shadow:0 5px 0 #e8c8d52b;transition:transform 150ms ease,box-shadow 150ms ease;color:#59495a}
.memory-preview:hover{background:#fbd4e3;border-color:#c58da7;transform:translateY(-3px);box-shadow:0 9px 0 #e8c8d529}
.memory-preview strong{font-size:.95rem;line-height:1.65;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding-right:2px}
.memory-preview .category{font-size:.75rem;color:#78536d;padding-right:20px}.memory-preview .category svg{width:15px;height:15px}.memory-preview .people-line{gap:10px;flex-wrap:wrap;margin:0}.memory-preview .person{font-size:.75rem;gap:5px}.memory-preview .avatar{width:21px;height:21px;font-size:.75rem;background:#fff9}
.memory-petal{position:absolute;right:-13px;top:-17px;display:block;transform:rotate(12deg);pointer-events:none}.memory-petal svg{width:44px;height:44px;filter:drop-shadow(0 2px 0 #fff9)}
.botanical-gratitude,.botanical-resolution{background:#d9edda;border-color:#b7d2bb;border-radius:12px 48px 12px 48px}.botanical-gratitude:hover,.botanical-resolution:hover{background:#cbe7d1;border-color:#8dbb9d}.botanical-gratitude .category,.botanical-resolution .category{color:#496b56}
.botanical-milestone,.botanical-reflection{background:#e8def6;border-color:#cec0e4}.botanical-milestone:hover,.botanical-reflection:hover{background:#e0cff4;border-color:#b2a0cc}.botanical-milestone .category,.botanical-reflection .category{color:#6f598c}
.botanical-anniversary{background:#ffebcc;border-color:#e8cda3}.botanical-anniversary:hover{background:#ffe2b3;border-color:#d3ad79}.botanical-anniversary .category{color:#7e6343}
.botanical-conflict{background:#dcecf7;border-color:#bacfdc;border-radius:34px 12px 34px 12px}.botanical-conflict:hover{background:#cde6f5;border-color:#93b6cf}.botanical-conflict .category{color:#506a84}
.botanical-deep_talk{background:#f7dfd1;border-color:#e4c4b8}.botanical-deep_talk:hover{background:#f4d2c0;border-color:#cbad9e}
.branch-tags{display:flex;gap:6px;flex-wrap:wrap}.branch-tags>span{font-size:.75rem;color:#53634c;background:#faffedbf;border:1px solid #bbcda9;border-radius:4px 13px 4px 13px;padding:3px 8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.more{font-size:.8rem;padding:4px 12px;margin-top:5px;background:#ffffffd6;border:1px solid #decddc;border-radius:20px;min-height:36px;color:#765871}
.timeline-bottom{padding:12px 24px 16px;color:#79816f}.timeline-bottom .icon-button{background:#fff9;border-color:#cfdbc6;color:#6b7d60}.timeline-bottom>span{font-size:.8rem}
.record-dock{position:fixed;left:50%;bottom:max(22px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:12;min-width:154px;height:57px;border-radius:32px;border:1px solid #b785a9;background:linear-gradient(110deg,#f5bfd1,#ddc8ef);color:#67435f;font-size:1rem;font-weight:600;box-shadow:0 7px 26px #a875992b,0 0 0 6px #fffaf6e6;padding:12px 23px;gap:10px}
.record-dock:hover{background:linear-gradient(110deg,#f0b1c8,#d4b7ed);box-shadow:0 9px 26px #a8759940,0 0 0 6px #fffaf6e6}.dock-flower{color:#8c5982;font-size:24px;font-weight:400;padding-left:8px}
.upcoming{margin-top:28px;gap:20px;align-items:center}.upcoming h2{color:#75617b;font-size:1rem;margin:0}.upcoming-items{gap:12px}.upcoming-items>div{background:#f8eee2;border-radius:19px;padding:17px;min-width:240px}.upcoming-items>div:nth-child(2){background:#eee5f7}.upcoming-items>div:nth-child(3){background:#e5f0e6}.upcoming-items svg{color:#8a6c88}.upcoming-items strong{font-size:.875rem}.days-away{color:#77556d}
footer{margin-top:28px;margin-bottom:85px;border-color:#eadfe4}footer span{font-size:.75rem}
.A{background:#d7eaf9;color:#355b78}.B{background:#f2d9eb;color:#7a456e}.bubble.A{background:#dfeffa}.bubble.B{background:#f7e0ed}.bubble .person small{opacity:1}.bubble{border-radius:24px 24px 24px 7px}.bubble.B{border-radius:24px 24px 7px 24px}
button.primary{background:#966687;border-color:#966687}button.primary:hover{background:#805574}dialog{background:#fffaf9;box-shadow:-15px 0 80px #6a41621f;border-color:#eadde6}dialog::backdrop{background:#65536f45;backdrop-filter:blur(3px)}
input,textarea,select{background:#fff;border-color:#b8a8b9;border-radius:12px}input:focus,textarea:focus,select:focus{border-color:#9b70a2}details{border-color:#e9dce7}summary{color:#755c7a}.privacy-note{background:#f0e7f6}.privacy-note p{color:#695b70}.resolution{background:#eaf2e4;border-color:#a5c397}
.metrics{border:0;gap:12px;overflow:visible}.metrics button{background:#f8e1ea;border-radius:18px}.metrics button:nth-child(2n){background:#e7e0f5}.metrics button:nth-child(3n){background:#e1efdf}.metrics button:nth-child(4n){background:#f7e7ce}.row-symbol{background:#eee1f4;color:#86668b}.record-row{border-color:#eadfe4}.record-row:hover{background:#faeaf366}.record-list{padding-bottom:20px}#notice{background:#785d78;bottom:100px}
.empty>svg{color:#a584b3}.empty{padding:68px 20px 90px}.empty h2{color:#7b6080}.onboarding .eyebrow{color:#966a92}
@media(max-width:767px){
 header{height:auto;min-height:114px;padding:13px 18px 10px;display:grid;grid-template-columns:1fr auto;gap:12px 8px;background:#fffaf7b8}
 header nav{position:static;grid-column:1 / -1;grid-row:2;height:auto;border:0;background:transparent;padding:0;gap:8px;justify-content:center}
 nav button{flex:0 1 110px;flex-direction:row;min-width:0;padding:6px 13px;min-height:36px;font-size:.8rem;gap:6px;border-radius:20px}nav button svg{width:16px;height:16px}
 .local-label{max-width:125px;font-size:.75rem}.brand small{font-size:.6rem}.brand-mark{height:36px;width:34px}
 main{padding:11px 12px 24px}.memory-cover{padding:12px 5px 21px}.cover-people{margin-bottom:10px;gap:12px}.cover-person{font-size:.8rem;gap:7px}.cover-person .avatar{width:25px;height:25px;font-size:.75rem}.memory-cover h1{font-size:1.55rem;letter-spacing:.04em}.together-days{font-size:.875rem}.together-days b{font-size:1.65rem}
 .cover-flower.one{left:5%;top:60px}.cover-flower.two{right:3%;bottom:18px}.cover-flower .blossom-mark{width:27px;height:27px}
 .timeline-panel{border-radius:25px}.timeline-toolbar{padding:10px 13px 0;flex-direction:row;align-items:center;min-height:49px;gap:6px}.season-label{font-size:.75rem;gap:5px}.season-label svg{width:16px}.timeline-toolbar>button{font-size:.75rem;min-height:38px;white-space:nowrap;padding:7px 8px}
 .timeline-scroll{padding:0 8px}.timeline-track{min-height:430px}.day-column{height:430px;width:270px}.tree-art{width:270px;height:430px}.branch{width:207px;left:20px}.branch.top{top:33px}.branch.bottom{top:290px;left:46px;width:203px}.axis{top:215px}.axis time{left:48px;top:21px;font-size:.75rem}.gap{font-size:.75rem}
 .memory-preview{min-height:123px;padding:16px 16px 14px;gap:8px}.memory-preview strong{font-size:.875rem;line-height:1.7}.memory-preview .category{font-size:.75rem;gap:5px}.memory-preview .person{font-size:.75rem}.memory-petal svg{width:37px;height:37px}.memory-petal{right:-10px;top:-14px}.branch-tags>span{padding:2px 7px}
 .timeline-bottom{padding:11px 13px 13px}.timeline-bottom>span{font-size:.75rem}.timeline-bottom .icon-button{height:38px;width:38px;min-height:38px}.browse-options{padding:12px}.browse-options .filters label{min-width:40%}.browse-options .toolbar-actions{flex-wrap:wrap;justify-content:flex-start;gap:3px}
 .upcoming{margin-top:24px;gap:13px}.upcoming-items{display:grid;grid-template-columns:1fr;gap:9px}.upcoming-items>div{padding:16px;border:0;min-width:0}.upcoming h2{margin-bottom:0}
 .record-dock{height:54px;min-width:150px;bottom:max(18px,env(safe-area-inset-bottom));font-size:.95rem}footer{margin:8px 16px 94px;padding-top:18px}footer span{font-size:.75rem}#notice{bottom:91px}
 .settings-grid{gap:32px}.page-heading{margin-top:15px}.metrics{gap:8px}.metrics button{padding:16px 12px}.metrics strong{font-size:1.5rem}.brand{font-size:.875rem}
}
@media(max-width:359px){.local-label{max-width:100px;font-size:.75rem}.cover-flower.one{left:0}.cover-flower.two{right:0}.season-label{font-size:.75rem}.timeline-toolbar>button{font-size:.75rem}nav button{padding:6px 9px}.memory-cover h1{font-size:1.4rem}}
/* Let a long title or tag row grow the branch without clipping the day list. */
.day-column{height:auto;min-height:460px}
.branch.bottom{position:relative;top:auto;margin-top:310px;padding-bottom:14px}
@media(max-width:767px){.day-column{height:auto;min-height:430px}.branch.bottom{top:auto;margin-top:290px;padding-bottom:14px}}
@media(prefers-reduced-motion:reduce){.memory-preview{transition:none}.memory-preview:hover{transform:none}}
