:root{--sky-top: #4a9fe0;--sky-mid: #7cc0f0;--sky-bottom: #c4e5fb;--text: #0d1420;--text-muted: #2e3a4c;--glass: rgba(255, 255, 255, .55);--glass-strong: rgba(255, 255, 255, .78);--glass-border: rgba(255, 255, 255, .75);--photo-wash: rgba(255, 255, 255, .62);--accent: #14548f;--accent-text: #ffffff;--danger: #a3221b;--success: #17603a;--focus: #0b3d91;--radius: 16px;--shadow: 0 6px 24px rgba(20, 60, 110, .14);--font-scale: 1;--icon-stroke: 1.6;--icon-ink: var(--text);--icon-chip-bg: linear-gradient(180deg, rgba(255, 255, 255, .78), rgba(255, 255, 255, .4));--icon-chip-border: rgba(255, 255, 255, .9);--icon-chip-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), inset 0 -1px 0 rgba(20, 60, 110, .06), 0 2px 8px rgba(20, 60, 110, .14);--icon-active-bg: linear-gradient(180deg, #2b6ca8, var(--accent));--icon-active-ink: #ffffff;--icon-active-label: var(--accent);color-scheme:light}:root[data-font-size=small]{--font-scale: .9}:root[data-font-size=large]{--font-scale: 1.15}:root[data-font-size=xlarge]{--font-scale: 1.32}:root[data-contrast=high]{--text: #000;--text-muted: #111;--glass: rgba(255, 255, 255, .92);--glass-strong: rgba(255, 255, 255, .97);--glass-border: #000;--photo-wash: rgba(255, 255, 255, .85);--accent: #002d6b;--danger: #7a0000;--success: #003d1a;--icon-stroke: 2;--icon-chip-bg: #fff;--icon-chip-border: #000;--icon-chip-shadow: none;--icon-active-bg: var(--accent)}[data-theme=dark]{--icon-ink: #e6eef8;--icon-chip-bg: linear-gradient(180deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .05));--icon-chip-border: rgba(255, 255, 255, .2);--icon-chip-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), 0 2px 10px rgba(0, 0, 0, .35);--icon-active-bg: linear-gradient(180deg, #a9d2f6, #7fb6ea);--icon-active-ink: #0b1a2b;--icon-active-label: #a9d2f6}*{box-sizing:border-box}html{font-size:calc(16px * var(--font-scale))}body{margin:0;min-height:100vh;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;color:var(--text);background:linear-gradient(180deg,var(--sky-top) 0%,var(--sky-mid) 45%,var(--sky-bottom) 100%) fixed;-webkit-font-smoothing:antialiased}h1,h2,h3{line-height:1.25;margin:0 0 .6rem}h2{font-size:1.2rem}h3{font-size:1.02rem;margin-top:1rem}p{margin:.4rem 0}a{color:var(--accent)}img{max-width:100%}code{background:#00000012;padding:.1em .35em;border-radius:4px}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:-999px;top:8px;z-index:100;background:#fff;padding:8px 12px;border-radius:8px}.skip-link:focus{left:8px}.sky{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.cloud{position:absolute;left:-320px;width:260px;height:90px;transform:scale(var(--scale));animation:drift linear infinite;filter:blur(1.5px)}.puff{position:absolute;background:#fff;border-radius:50%;box-shadow:inset -8px -10px 18px #aac8e659}.p1{width:110px;height:70px;left:0;top:24px}.p2{width:120px;height:100px;left:60px;top:0}.p3{width:100px;height:80px;left:140px;top:14px}.p4{width:160px;height:50px;left:30px;top:46px;border-radius:30px}@keyframes drift{0%{transform:translate(0) scale(var(--scale))}to{transform:translate(calc(100vw + 640px)) scale(var(--scale))}}:root[data-motion=reduced] .cloud{animation:none}:root[data-motion=reduced] .cloud:nth-child(1){left:6%}:root[data-motion=reduced] .cloud:nth-child(2){left:62%}:root[data-motion=reduced] .cloud:nth-child(3){left:30%}:root[data-motion=reduced] .cloud:nth-child(4){left:80%}:root[data-motion=reduced] .cloud:nth-child(5){left:12%}:root[data-motion=reduced] .cloud:nth-child(6){left:55%}:root[data-motion=reduced] *,:root[data-motion=reduced] *:before{transition:none!important;scroll-behavior:auto!important}:root[data-contrast=high] .sky{opacity:.35}.glass,.glass-strong{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}.glass-strong{background:var(--glass-strong)}.card{padding:1.1rem 1.25rem;margin-bottom:1rem}.narrow{max-width:440px;width:100%}.app-shell{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.6rem;padding:.55rem 1rem}.brand{display:inline-flex;align-items:center;border-radius:8px}.brand-logo{display:block;height:34px;width:auto}.auth-logo{margin:.2rem 0 .4rem;line-height:0}.auth-logo img{display:block;width:min(100%,300px);height:auto;margin:0 auto}.banner{margin:0 .6rem .6rem;padding:.6rem 1rem}.content{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:.4rem 1rem 6rem;outline:none}.center-page{position:relative;z-index:1;min-height:100vh;display:grid;place-items:center;padding:1rem}.lock-screen{position:relative;z-index:2;min-height:100vh;display:grid;place-items:center;padding:1rem}.bottomnav{position:fixed;left:50%;bottom:.6rem;transform:translate(-50%);z-index:10;display:flex;gap:.15rem;padding:.35rem;max-width:calc(100vw - 1.2rem)}.bottomnav a{display:flex;flex-direction:column;align-items:center;gap:.2rem;min-width:52px;min-height:52px;padding:.3rem .55rem;border-radius:12px;color:var(--text);text-decoration:none;font-size:.78rem;font-weight:600}.bottomnav a.active{color:var(--icon-active-label);font-weight:700}.bottomnav a.active .ico-chip{background:var(--icon-active-bg);color:var(--icon-active-ink);border-color:transparent}.bottomnav a:hover:not(.active) .ico-chip{filter:brightness(1.05)}.ico{width:1.25em;height:1.25em;flex:none;vertical-align:-.22em;fill:none;stroke:currentColor;stroke-width:var(--icon-stroke);stroke-linecap:round;stroke-linejoin:round}.btn .ico{width:1.2em;height:1.2em}h2>.ico,.cal-lookback>.ico,.feature-list .ico{color:var(--accent)}.ico-chip{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:11px;color:var(--icon-ink);background:var(--icon-chip-bg);border:1px solid var(--icon-chip-border);box-shadow:var(--icon-chip-shadow);transition:filter .15s}.ico-chip .ico{width:20px;height:20px}.page-title{font-size:1.5rem;margin:.3rem 0 .8rem}.row{display:flex;align-items:center;gap:.6rem}.row.wrap{flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:.6rem}.grow{flex:1}.muted{color:var(--text-muted)}.small{font-size:.85rem}.error{color:var(--danger);font-weight:600}.success{color:var(--success);font-weight:600}.divider{text-align:center;color:var(--text-muted);margin:1rem 0 .5rem}.pill{display:inline-block;font-size:.72rem;padding:.1rem .5rem;border-radius:999px;background:var(--accent);color:var(--accent-text);vertical-align:middle}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.5rem 1rem;font:inherit;font-weight:600;color:var(--text);background:#ffffffd9;border:1px solid rgba(13,20,32,.25);border-radius:12px;cursor:pointer;text-decoration:none}.btn:hover{background:#fff}.btn:disabled,.btn.disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.btn.primary:hover{filter:brightness(1.1)}.btn.danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn.selected{outline:3px solid var(--accent);background:#fff}.btn.small{min-height:36px;padding:.3rem .7rem;font-size:.88rem}.btn.big{min-height:52px;font-size:1.05rem;width:100%}.btn.icon{width:44px;padding:0;border-radius:14px;color:var(--icon-ink);background:var(--icon-chip-bg);border-color:var(--icon-chip-border);box-shadow:var(--icon-chip-shadow)}.btn.icon:hover:not(:disabled){background:var(--icon-chip-bg);filter:brightness(1.05)}.btn.icon .ico{width:22px;height:22px}.btn.link{background:none;border:none;color:var(--accent);text-decoration:underline;min-height:auto;padding:.25rem}.btn.plan{flex-direction:column;flex:1;min-width:150px;padding:1rem}input,select,textarea{font:inherit;color:var(--text);min-height:44px;padding:.5rem .7rem;background:#ffffffeb;border:1px solid rgba(13,20,32,.3);border-radius:10px}textarea{resize:vertical}label{font-weight:600}.toggle{display:flex;align-items:center;gap:.6rem;font-weight:500;margin:.4rem 0}.toggle input{min-height:auto;width:1.2rem;height:1.2rem}fieldset{border:none;padding:0;margin:.8rem 0}legend{font-weight:600;margin-bottom:.4rem}.cal-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.6rem;margin-bottom:.8rem}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem}.cal-weekday{text-align:center;font-weight:700;font-size:.8rem;color:var(--text);text-shadow:0 1px 2px rgba(255,255,255,.8)}.cal-cell{position:relative;min-height:104px;padding:.35rem .4rem;text-align:left;display:flex;flex-direction:column;gap:.15rem;font:inherit;color:var(--text);cursor:pointer;overflow:hidden;background-size:cover;background-position:center}.cal-cell.empty{background:transparent;border:none;box-shadow:none;cursor:default}.cal-cell.has-photo:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--photo-wash);z-index:0}.cal-cell>*{position:relative;z-index:1}.cal-cell.today{outline:3px solid var(--accent)}.cal-daynum{font-weight:800;font-size:.95rem}.cal-lookback{font-size:.68rem;font-style:italic;color:var(--text-muted);line-height:1.2}.cal-preview{font-size:.74rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.cal-moods{margin-top:auto;display:flex;flex-wrap:wrap;gap:1px;font-size:.95rem}.timeline-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.timeline-row{display:grid;grid-template-columns:1fr auto;grid-template-areas:"meta thumb" "text thumb";gap:.2rem .8rem;padding:.8rem 1rem;color:var(--text);text-decoration:none}.timeline-meta{grid-area:meta;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;font-size:.85rem}.timeline-date{font-weight:700}.timeline-snippet{grid-area:text;margin:0}.timeline-thumb{grid-area:thumb;width:72px;height:72px;object-fit:cover;border-radius:10px}.lookback-card h2{font-size:1.05rem}.lookback-item{display:block;color:var(--text);text-decoration:none;padding:.3rem 0}.entry-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.entry-head time{font-weight:700}.entry-body{white-space:pre-wrap;overflow-wrap:anywhere}.entry-media{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}.entry-media img{width:180px;height:180px;object-fit:cover;border-radius:12px}.mood-badge{font-size:1.1rem}.tags{list-style:none;padding:0;margin:.4rem 0;display:flex;flex-wrap:wrap;gap:.35rem}.tag{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .55rem;border-radius:999px;background:#14548f1f;font-size:.85rem;font-weight:600}.tag button{position:relative;display:inline-grid;place-items:center;width:20px;height:20px;margin-right:-.3rem;border:none;border-radius:50%;background:#14548f1f;cursor:pointer;padding:0;color:inherit}.tag button:after{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px}.tag button .ico{width:14px;height:14px}.editor{display:flex;flex-direction:column;gap:.8rem}.entry-text{min-height:40vh;font-size:1.05rem;line-height:1.6;width:100%}.prompt-box{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.prompt{width:100%;font-style:italic;margin:0}.mood-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:.4rem}.mood{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.4rem;font:inherit;font-size:1.5rem;cursor:pointer;background:#fffc;border:1px solid rgba(13,20,32,.2);border-radius:12px}.mood.selected{outline:3px solid var(--accent);background:#fff}.mood-label{font-size:.72rem;font-weight:600}.media-grid{display:flex;flex-wrap:wrap;gap:.6rem}.media-tile{position:relative}.media-tile img,.media-placeholder{width:110px;height:110px;object-fit:cover;border-radius:12px;background:#fff9}.media-remove{position:absolute;top:-10px;right:-10px;display:grid;place-items:center;width:32px;height:32px;padding:0;border-radius:50%;border:1px solid var(--icon-chip-border);cursor:pointer;color:var(--danger);background:var(--icon-chip-bg);box-shadow:var(--icon-chip-shadow);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.media-remove:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px}.media-remove .ico{width:18px;height:18px;stroke-width:2}.media-tile>.media-audio-ico{display:grid;place-items:center;width:110px;height:110px;border-radius:12px;background:#fff9}.media-tile>.media-audio-ico .ico{width:32px;height:32px;color:var(--accent)}.tag-input{display:flex;flex-direction:column;gap:.3rem}.held-media{margin-top:.8rem;padding:.7rem .8rem;border-radius:12px;background:#ffecb399;border:1px solid rgba(179,134,0,.55)}.held-title{margin:0 0 .5rem;font-weight:700}.held-title .ico{color:#8a5a00}.held-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.held-item{display:flex;gap:.7rem;align-items:flex-start}.held-item p{margin:.15rem 0 .4rem}.held-item img,.held-audio{flex:none;width:64px;height:64px;border-radius:10px;object-fit:cover}.held-audio{display:grid;place-items:center;background:#ffffffb3;color:var(--accent)}.held-audio .ico{width:26px;height:26px}:root[data-contrast=high] .held-media{background:#fff;border-color:#000}.mood-chart{margin:0}.mood-chart svg{width:100%;height:auto}.mood-chart .grid{stroke:#0d142026}.mood-chart .line{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round}.mood-chart .dot{fill:var(--accent)}.mood-chart .axis{font-size:12px;fill:var(--text-muted)}.mood-chart .axis-emoji{font-size:14px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem}.stat{padding:.7rem;display:flex;flex-direction:column;align-items:center}.stat-value{font-size:1.6rem;font-weight:800}.stat-label{font-size:.82rem}.big-emoji{font-size:1.8rem}.resurfaced{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.6rem}.resurfaced-item{display:flex;flex-direction:column;gap:.3rem;padding:.6rem;color:var(--text);text-decoration:none}.resurfaced-item img{width:100%;height:120px;object-fit:cover;border-radius:10px}.analysis{white-space:pre-wrap;margin-top:.8rem;padding:.8rem;background:#fff9;border-radius:12px}.disclaimer{font-size:.85rem;padding:.6rem .8rem;border-radius:10px;background:#ffecb3e6;border:1px solid #b38600}.chat-log{display:flex;flex-direction:column;gap:.5rem;min-height:40vh;max-height:60vh;overflow-y:auto;padding:.5rem 0}.bubble{max-width:80%;padding:.6rem .9rem;border-radius:16px;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.user{align-self:flex-end;background:var(--accent);color:var(--accent-text);border-bottom-right-radius:4px}.bubble.assistant{align-self:flex-start;background:#fff;border-bottom-left-radius:4px}.meter{height:10px;background:#0d14201f;border-radius:999px;overflow:hidden}.meter span{display:block;height:100%;background:var(--accent)}.danger-zone h2{color:var(--danger)}.signed-in{display:flex;flex-wrap:wrap;align-items:center;gap:0 .3rem;overflow-wrap:anywhere}.signed-in .btn.link{font-weight:700}.signout-error{display:block;flex-basis:100%;margin-top:.3rem}.dialog{width:min(440px,calc(100vw - 2rem));color:var(--text);margin:auto}.dialog::backdrop{background:#0d142066;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.dialog h2{margin-bottom:.4rem}.dialog .row{margin-top:.8rem}.account-menu{display:none;position:relative}.account-menu summary{list-style:none}.account-menu summary::-webkit-details-marker{display:none}.account-panel{position:absolute;right:0;top:calc(100% + .4rem);z-index:20;width:max-content;max-width:320px;padding:.8rem 1rem;border-radius:var(--radius);border:1px solid var(--glass-border);box-shadow:var(--shadow);overflow-wrap:anywhere}.account-panel p{margin:0 0 .6rem}@media (min-width: 768px){.account-menu{display:block}}.feature-list{padding-left:1rem;list-style:none}.feature-list li{margin:.35rem 0}.turnstile{min-height:65px}@media (max-width: 640px){.content{padding:.2rem .6rem 6rem}.cal-grid{gap:.2rem}.cal-cell{min-height:64px;padding:.2rem;border-radius:10px}.cal-preview,.cal-lookback{display:none}.cal-moods{font-size:.75rem}.bottomnav a{min-width:48px;min-height:48px;padding:.25rem .3rem;font-size:.68rem}.bottomnav .ico-chip{width:30px;height:30px;border-radius:10px}.bottomnav .ico-chip .ico{width:18px;height:18px}.brand-logo{height:26px}.entry-media img{width:46%;height:auto;aspect-ratio:1}}
