:root{--ink:#22201e;--muted:#827a73;--paper:#f5f0e9;--card:#fffdfa;--line:#e9e0d5;--accent:#b96655;--accent-dark:#803f35;--soft:#f4e2d9;--serif:"Iowan Old Style","Songti SC","STSong",serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:ui-rounded,"SF Pro Rounded","PingFang SC","Microsoft YaHei",system-ui,sans-serif;min-height:100dvh;background-image:radial-gradient(#dacbbc72 .7px,transparent .7px);background-size:7px 7px}.app-shell{max-width:680px;margin:auto;padding:env(safe-area-inset-top,20px) 20px calc(96px + env(safe-area-inset-bottom));min-height:100dvh}.hidden{display:none!important}.gate-view{max-width:430px;margin:8vh auto 0}.brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:50% 50% 45% 50%;background:var(--ink);color:#fff;font-family:var(--serif);font-size:23px;font-weight:600;margin-bottom:34px;box-shadow:4px 4px 0 #d7b6a8}.eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-weight:700}.gate-view h1,.topbar h1{font-size:36px;line-height:1.1;letter-spacing:-.07em;margin:0}.intro{color:var(--muted);line-height:1.75;font-size:14px;margin:19px 0 31px}.auth-form{display:grid;gap:17px}.auth-form label,.field-label{display:grid;gap:8px;font-size:13px;font-weight:650}.auth-form input,.field-label input,.field-label textarea{appearance:none;width:100%;border:1px solid var(--line);border-radius:11px;background:#fffdfa;padding:14px 15px;color:var(--ink);font:inherit;font-weight:400;outline:none}.auth-form input:focus,.field-label input:focus,.field-label textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #b966551a}.primary-button,.secondary-button,.save-button{border:0;cursor:pointer;font:inherit;font-weight:650;border-radius:12px}.primary-button{background:var(--ink);color:#fff;padding:15px;margin-top:5px;box-shadow:0 4px 0 #000}.primary-button:active{transform:translateY(2px);box-shadow:0 2px 0 #000}.form-error{color:#ad3e50;font-size:13px;min-height:1em;margin:0}.notice{display:flex;gap:11px;border-top:1px solid var(--line);margin-top:38px;padding-top:18px;color:var(--muted);font-size:12px;line-height:1.6}.notice strong{color:var(--ink);white-space:nowrap}.quiet{text-align:center;font-size:12px;color:var(--muted);line-height:1.6;margin-top:25px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;padding-top:16px}.topbar h1{font-size:32px}.privacy-dot{width:6px;height:6px;border-radius:50%;display:inline-block;background:#76916e;margin:0 5px 1px 0}.icon-button,.plain-button,.filter-button,.dismiss,.guide-close{border:0;background:transparent;color:var(--ink);cursor:pointer;font:inherit}.icon-button{width:42px;height:42px;border:1px solid var(--line);background:#fffaf5;border-radius:50%;font-size:23px;line-height:1;transition:.15s}.icon-button:active{background:var(--soft)}.date-hero{display:flex;gap:19px;align-items:center;margin:30px 0 17px}.date-block{width:102px;min-width:102px;height:126px;padding:13px 0;text-align:center;background:#e3b8a4;border-radius:51px 51px 14px 14px;box-shadow:inset 0 0 0 1px #fff8,4px 4px 0 #cf9f8e}.date-block p,.date-block span{display:block;margin:0;font-size:11px;font-weight:650;color:#79493d}.date-block strong{display:block;font-family:var(--serif);letter-spacing:-.1em;font-size:54px;line-height:.95;color:#44302b}.date-copy{padding-bottom:3px}.prompt-kicker{font-size:11px;letter-spacing:.08em;color:var(--accent-dark);margin:0 0 8px;font-weight:750}.date-copy h2{font-family:var(--serif);font-size:29px;letter-spacing:-.06em;line-height:1.08;margin:0}.prompt-card{margin:0 0 16px;padding:18px;border-radius:17px;background:#fffaf4;border:1px solid #eadbd0;display:flex;gap:13px;align-items:center;box-shadow:0 5px 14px #9c74630c}.prompt-icon{display:grid;place-items:center;width:39px;height:39px;min-width:39px;border-radius:50%;background:var(--soft);color:var(--accent-dark);font-size:18px}.prompt-card p{font-size:11px;color:var(--muted);margin:0 0 3px}.prompt-card h2{font-size:15px;letter-spacing:-.035em;margin:0}.round-arrow{margin-left:auto;width:36px;height:36px;min-width:36px;border-radius:50%;border:0;background:var(--ink);color:#fff;font-size:20px;cursor:pointer}.install-card{position:relative;display:flex;align-items:center;gap:12px;background:#f0e7de;border:1px solid #e4d4c9;border-radius:14px;padding:13px 43px 13px 14px}.install-icon{width:32px;height:32px;display:grid;place-items:center;background:#fff9f3;color:var(--accent-dark);border-radius:9px;font-size:18px}.install-card strong{font-size:12px}.install-card p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.4}.secondary-button{margin-left:auto;padding:8px 10px;color:var(--accent-dark);background:#fff8f1;font-size:12px;white-space:nowrap}.dismiss{position:absolute;right:10px;top:3px;color:var(--muted);font-size:20px}.entries-section{margin-top:34px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.section-heading h2{font-size:20px;letter-spacing:-.05em;margin:0}.section-kicker{font-size:9px;letter-spacing:.14em;color:#ae9788;margin:0 0 4px;font-weight:800}.filter-button{font-size:12px;color:var(--accent-dark);background:#efe2d8;padding:8px 11px;border-radius:99px}.filter-button span{margin-left:4px}.entries-list{display:grid;gap:10px}.entry-card{position:relative;display:block;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:16px 18px;cursor:pointer;color:inherit;font:inherit;box-shadow:0 4px 13px #826d5c09;transition:.15s}.entry-card:active{transform:scale(.99);background:#fff8f2}.entry-card h3{font-size:15px;letter-spacing:-.025em;margin:0 0 7px}.entry-card p{color:var(--muted);font-size:13px;line-height:1.5;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-meta{display:flex;gap:8px;margin-top:13px;color:#9a9088;font-size:11px}.tag{color:var(--accent-dark);background:var(--soft);padding:2px 7px;border-radius:99px}.empty-state{text-align:center;color:var(--muted);padding:54px 0}.empty-state span{font-size:27px;color:#c79180}.empty-state h3{font-size:15px;color:var(--ink);margin:15px 0 6px}.empty-state p{font-size:13px;margin:0}.fab{position:fixed;bottom:calc(22px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%) rotate(-4deg);width:58px;height:58px;border-radius:46% 54% 52% 48%;border:0;background:#c36e5c;color:white;font-size:30px;box-shadow:4px 5px 0 #9f5345,0 10px 23px #8c514a40;cursor:pointer}.sheet{width:min(680px,100%);max-width:680px;margin:auto;border:0;border-radius:25px 25px 0 0;padding:0;position:fixed;inset:auto 0 0;box-shadow:0 -10px 35px #0002;background:#fffdfa}.sheet::backdrop,.guide-dialog::backdrop{background:#3c29225a}.sheet form{padding:9px 20px calc(25px + env(safe-area-inset-bottom));display:grid;gap:21px}.sheet-handle{width:35px;height:4px;border-radius:99px;background:#e5d8ce;justify-self:center;margin:1px 0 0}.sheet-head{display:flex;align-items:center;justify-content:space-between}.plain-button{font-size:14px;color:var(--muted)}.save-button{background:var(--ink);color:#fff;padding:8px 14px}.field-label textarea{height:180px;resize:none;line-height:1.6}.delete-button{border:0;background:transparent;color:#ad3e50;justify-self:start;padding:5px 0;font:inherit;font-size:13px}.guide-dialog{border:0;border-radius:20px;width:min(420px,calc(100% - 34px));padding:28px;background:var(--card);box-shadow:0 12px 40px #0003}.guide-dialog h2{font-size:25px;letter-spacing:-.05em;margin:0 0 22px}.guide-close{position:absolute;right:14px;top:9px;font-size:22px;color:var(--muted)}.guide-steps{display:grid;gap:10px}.guide-steps div{padding:14px;border-radius:12px;background:var(--paper)}.guide-steps b{font-size:13px}.guide-steps p,.guide-note{font-size:13px;color:var(--muted);line-height:1.6;margin:5px 0 0}.guide-note{border-top:1px solid var(--line);padding-top:14px;margin-top:18px}.toast{position:fixed;left:50%;bottom:calc(93px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:var(--ink);color:#fff;border-radius:99px;padding:10px 15px;font-size:13px;opacity:0;pointer-events:none;transition:.2s}.toast.show{transform:translate(-50%,0);opacity:1}@media(min-width:700px){.fab{left:calc(50% + 270px);bottom:35px}.app-shell{padding-top:44px}.gate-view{margin-top:10vh}}
