:root{--paper:#fbf8f3;--ink:#2e241f;--soft:#75675c;--line:#e8ded2;--copper:#c77a42;--wash:#f7efe6}*{box-sizing:border-box}body,html{min-height:100%;background:var(--paper)}body{margin:0;color:var(--ink);font-family:Iowan Old Style,Georgia,"Noto Serif SC",Microsoft YaHei,serif}button,input,textarea{font:inherit}button{cursor:pointer}.login,.shell{width:min(100%,620px);min-height:100svh;margin:auto;padding:28px 24px max(38px,env(safe-area-inset-bottom))}header{display:flex;justify-content:space-between;align-items:center}.wordmark{color:var(--ink);font-size:25px;font-weight:700;letter-spacing:.01em}.quiet{border:0;padding:7px 0;color:var(--soft);background:transparent;font-family:Microsoft YaHei,sans-serif;font-size:14px}.intro{padding:50px 0 30px;text-align:center}.hearts,.login-mark{color:var(--copper);font-size:42px;letter-spacing:-10px;line-height:1}.intro h1{margin:22px 0 15px;font-size:27px;font-weight:700;letter-spacing:.04em}.relationship{display:inline-block;margin:0;padding:8px 17px;border:1px solid #f0e2d4;border-radius:16px;color:#b66b39;background:var(--wash);font-family:Microsoft YaHei,sans-serif;font-size:14px}.clocks{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.clock{min-width:0;padding:26px 10px 26px 0;text-align:center}.clock+.clock{padding-right:0;padding-left:10px;border-left:1px solid var(--line)}.city,.date,.state{margin:0;font-family:Microsoft YaHei,sans-serif}.city{color:#64584f;font-size:19px;font-weight:700}.state{overflow:hidden;margin:12px 0 19px;padding:6px 8px;border-radius:14px;color:#bd7040;background:var(--wash);text-overflow:ellipsis;font-size:13px}.state,.time{white-space:nowrap}.time{margin:0 0 10px;font-size:48px;line-height:.95;letter-spacing:-.07em}.time small{margin-left:3px;color:var(--copper);font-size:18px;letter-spacing:0}.date{color:var(--soft);font-size:14px}.actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:0;gap:0;padding:23px 0;border-bottom:1px solid var(--line)}.actions a,.actions button,.login button,.records form button{min-height:49px;border:0;background:transparent;color:var(--copper);text-align:center;text-decoration:none;font-family:Microsoft YaHei,sans-serif;font-size:18px;font-weight:700}.actions a{display:grid;place-items:center;border:2px solid var(--copper);border-radius:10px}.actions button{border-left:1px solid var(--line)}.actions button:active,.login button:active,.records form button:active{transform:scale(.98)}.notice{margin:15px 0 0;color:var(--soft);text-align:center;font-family:Microsoft YaHei,sans-serif;font-size:12px}.records{padding:34px 0 0}.section-heading{display:flex;align-items:baseline;justify-content:space-between}h2{margin:0 0 16px;font-size:24px}.latest,.records li span,.section-heading span{color:var(--soft);font-family:Microsoft YaHei,sans-serif;font-size:12px}.records form{display:grid;grid-gap:10px;gap:10px}textarea{min-height:104px;resize:vertical;border:1px solid var(--line);border-radius:14px;padding:14px;color:var(--ink);background:#fffdfa;font-family:Microsoft YaHei,sans-serif;font-size:15px;outline:none}input:focus,textarea:focus{border-color:var(--copper)}.login button,.records form button{border-radius:14px;background:var(--ink);color:var(--paper)}.records ol{list-style:none;margin:22px 0 0;padding:0}.records li{padding:16px 0;border-top:1px solid var(--line)}.records li p{margin:0 0 7px;font-family:Microsoft YaHei,sans-serif;font-size:14px;line-height:1.65}.latest{padding:14px 0 0}.latest,.login{text-align:center}.login{display:grid;align-content:center}.login-mark{margin-bottom:22px}.login .wordmark{margin:0 0 48px}.login form{display:grid;grid-gap:15px;gap:15px;text-align:left}.login label{display:grid;grid-gap:7px;gap:7px;color:var(--soft);font-family:Microsoft YaHei,sans-serif;font-size:13px}.login input{min-height:52px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fffdfa;outline:none}@media (max-width:390px){.login,.shell{padding-inline:18px}.wordmark{font-size:23px}.intro{padding-top:42px}.time{font-size:42px}.state{font-size:12px}}.header-actions{display:flex;align-items:center;gap:13px}.story-link{text-decoration:none}.actions{grid-template-columns:1fr 1fr 1fr}.interaction-card,.phone-settings{display:flex;align-items:center;gap:14px;margin:18px 0 0;padding:15px 0;border-bottom:1px solid var(--line);font-family:Microsoft YaHei,sans-serif}.interaction-card div,.phone-settings div{flex:1 1}.interaction-card strong,.phone-settings strong{display:block;font-size:14px}.interaction-card p,.phone-settings span{display:block;margin:4px 0 0;color:var(--soft);font-size:12px;line-height:1.55}.phone-settings button{border:1px solid var(--copper);border-radius:999px;padding:6px 12px;color:var(--copper);background:transparent}.interaction-card{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.interaction-card>span{color:var(--copper);font-size:25px}.interaction-card b,.interaction-card em{display:block;margin-top:8px;color:var(--copper);font-family:Microsoft YaHei,sans-serif;font-size:12px;font-style:normal;font-weight:600}.interaction-card b{margin-top:10px;color:var(--soft);font-weight:400}.interaction-card.super{animation:soft-arrival .2s ease both}.thought-action small{display:block;margin-top:2px;color:var(--soft);font-size:12px;font-weight:400}.pending-state{margin:12px 0 0;color:#aa6438;text-align:center;font-family:Microsoft YaHei,sans-serif;font-size:12px}.love-detail{position:fixed;z-index:20;inset:0;overflow:auto;padding:26px 24px max(36px,env(safe-area-inset-bottom));background:var(--paper)}.love-detail header{position:-webkit-sticky;position:sticky;top:0;z-index:1;padding-bottom:20px;background:var(--paper)}.detail-summary{padding:22px 0 24px;border-bottom:1px solid var(--line)}.detail-summary p{margin:0 0 7px;color:var(--copper);font-family:Microsoft YaHei,sans-serif;font-size:13px;font-weight:700}.detail-summary h2{margin:0 0 8px;font-size:22px}.detail-summary span{color:var(--soft);font-size:13px}.detail-summary span,.detail-summary strong{display:block;font-family:Microsoft YaHei,sans-serif}.detail-summary strong{margin-top:18px;color:var(--ink);font-size:14px}.timeline{list-style:none;margin:0;padding:0}.timeline li{display:flex;gap:14px;padding:19px 0;border-bottom:1px solid var(--line)}.timeline>li>span{color:var(--copper);font-size:22px;line-height:1.2}.timeline div{flex:1 1}.timeline strong{font-size:14px}.timeline p,.timeline small,.timeline strong{display:block;font-family:Microsoft YaHei,sans-serif}.timeline p,.timeline small{margin:5px 0 0;color:var(--soft);font-size:12px;line-height:1.55}.timeline aside{display:flex;gap:9px;margin-top:12px}.timeline aside button{border:1px solid var(--copper);border-radius:999px;padding:6px 10px;color:var(--copper);background:transparent;font-family:Microsoft YaHei,sans-serif;font-size:12px}.timeline .empty-timeline{display:block;color:var(--soft);font-family:Microsoft YaHei,sans-serif;text-align:center}@keyframes soft-arrival{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}button{touch-action:manipulation}button:disabled{opacity:.5;cursor:default}button:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--copper);outline-offset:3px}textarea{font-size:16px}.actions button:first-child{border-left:0}.moment-direction{display:block;margin-bottom:7px;color:var(--soft);font:12px/1.5 Microsoft YaHei,sans-serif}.timeline .moment-direction{margin:0 0 7px}.quiet,.timeline aside button{min-height:44px}.pending-record{border-left:2px solid var(--copper);padding-left:12px!important}.records li p{white-space:pre-wrap;overflow-wrap:anywhere}.thought-heatmap{--heat-0:var(--line);--heat-1:#efceb2;--heat-2:#d8a275;--heat-3:#b97846;--heat-4:#80502e;padding:28px 0 24px;border-bottom:1px solid var(--line)}.thought-heatmap h2{font-size:22px;margin-bottom:8px}.heatmap-caption{margin:6px 0 12px;color:var(--soft);font:12px/1.6 Microsoft YaHei,sans-serif}.heatmap-months{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));margin:18px 0 8px 22px;color:var(--soft);font:12px Microsoft YaHei,sans-serif}.heatmap-calendar{display:flex;gap:8px}.heatmap-weekdays{display:grid;grid-template-rows:repeat(7,1fr);width:14px;color:var(--soft);font:12px Microsoft YaHei,sans-serif}.heatmap-weekdays span{display:grid;align-items:center}.heatmap-grid{display:grid;flex:1 1;min-width:0;grid-auto-flow:column;grid-template-rows:repeat(7,1fr);grid-template-columns:repeat(12,minmax(0,1fr));grid-gap:4px;gap:4px}.heatmap-day{display:block;width:100%;aspect-ratio:1;border:0;border-radius:3px;padding:0;transition:opacity .15s}.heatmap-day:active{opacity:.6}.heatmap-day[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:1px}.level-0{background:var(--heat-0)}.level-1{background:var(--heat-1)}.level-2{background:var(--heat-2)}.level-3{background:var(--heat-3)}.level-4{background:var(--heat-4)}.heatmap-legend{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:5px;margin:12px 0;color:var(--soft);font:12px Microsoft YaHei,sans-serif}.heatmap-legend i{width:11px;height:11px;border-radius:2px}.heatmap-legend small{margin-left:5px;font-size:12px}.heatmap-selection{display:flex;flex-wrap:wrap;gap:8px 16px;margin:18px 0 8px;color:var(--ink);font:13px/1.6 Microsoft YaHei,sans-serif}.heatmap-date{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--soft);font:13px Microsoft YaHei,sans-serif}.heatmap-date input{min-height:44px;min-width:0;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font-size:16px}.heatmap-table{color:var(--soft);font:13px/1.6 Microsoft YaHei,sans-serif}.heatmap-table summary{cursor:pointer;min-height:44px;padding:12px 0}.heatmap-table table{width:100%;border-collapse:collapse;text-align:left}.heatmap-table td,.heatmap-table th{padding:8px 4px;border-bottom:1px solid var(--line)}@media (max-width:390px){.actions{grid-template-columns:1fr 1fr 1fr}.actions button{font-size:16px}.thought-action small{font-size:11px}}@media (prefers-reduced-motion:reduce){.interaction-card.super{animation:none}button{transition:none}}.love-detail>.detail-summary,.love-detail>.thought-heatmap,.love-detail>.timeline,.love-detail>header{max-width:572px;margin-inline:auto}.love-detail{width:100%;height:100%;max-width:none;max-height:none;margin:0;border:0;color:var(--ink)}.phone-settings button{flex-shrink:0;min-height:44px}.settings-notice{color:var(--soft);font-size:12px;line-height:1.6}.load-error{margin-top:20px;padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--wash);color:var(--ink);font:14px/1.6 Microsoft YaHei,sans-serif}.load-error p{margin:0}.load-error button{min-height:44px;text-decoration:underline}