:root{--bg: #F4F1EA;--surface: #FCFBF7;--surface-raised: #FFFFFF;--text: #1F1D18;--text-soft: #6A655B;--text-faint: #9D978A;--line: #E5E0D4;--line-strong: #D6D0C1;--accent: #A5532A;--accent-soft: #C2562A;--warning: #B45309;--danger: #B91C1C;--success: #4D7C3A;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;--font-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;--shadow-sm: 0 1px 2px rgba(47, 38, 22, .05), 0 1px 3px rgba(47, 38, 22, .05);--shadow-md: 0 2px 6px rgba(47, 38, 22, .05), 0 10px 30px rgba(47, 38, 22, .08);--radius: 14px;--radius-sm: 9px;--measure: 38rem}@media (prefers-color-scheme: dark){:root{--bg: #15130E;--surface: #1E1B15;--surface-raised: #24211A;--text: #ECE7DB;--text-soft: #A8A292;--text-faint: #756F61;--line: #322E25;--line-strong: #423D32;--accent: #E0915C;--accent-soft: #E8A06E;--warning: #E0A458;--danger: #E07A6E;--success: #8FB57A;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 2px 6px rgba(0, 0, 0, .25), 0 12px 32px rgba(0, 0, 0, .35)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;-webkit-text-size-adjust:100%}body{min-height:100%;font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.5;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;color:inherit}::selection{background:color-mix(in srgb,var(--accent) 22%,transparent)}.container{width:100%;max-width:var(--measure);margin:0 auto;padding:0 24px}main{padding:48px 0 96px}.brand{font-family:var(--font-serif);font-size:18px;font-weight:400;letter-spacing:-.01em;color:var(--text);white-space:nowrap}.brand b{font-weight:700}.brand .brand-a{font-style:italic;font-weight:400;color:var(--accent);padding:0 .04em}.brand .brand-day{color:var(--text-faint)}header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(140%) blur(12px);-webkit-backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid var(--line)}header nav{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:var(--measure);margin:0 auto;padding:14px 24px}.nav-links{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px 20px}.nav-links a,.nav-links .btn-ghost{font-size:14px;color:var(--text-soft);background:none;border:none;padding:0;transition:color .12s ease}.nav-links a:hover,.nav-links .btn-ghost:hover{color:var(--text)}.nav-links form{display:inline-flex}.nav-toggle,.nav-drawer,.nav-backdrop{display:none}.nav-toggle{align-items:center;justify-content:center;width:44px;height:44px;margin:-10px -12px -10px 0;background:none;border:0;color:var(--text);border-radius:8px}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.nav-close{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-10px;background:none;border:0;color:var(--text-soft);border-radius:8px;transition:color .12s ease}.nav-close:hover{color:var(--text)}.drawer-links{display:flex;flex-direction:column}.drawer-links a,.drawer-links button{display:block;width:100%;padding:15px 4px;font-family:inherit;font-size:17px;text-align:left;color:var(--text-soft);background:none;border:0;border-bottom:1px solid var(--line);transition:color .12s ease}.drawer-links a:hover,.drawer-links button:hover{color:var(--text)}.drawer-links form{width:100%;margin-top:6px}.drawer-links .drawer-signout{border-bottom:0;color:var(--accent)}@media (max-width: 640px){.nav-links{display:none}.nav-toggle{display:inline-flex}.nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;padding:0;border:0;background:#14100a73;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;z-index:40;cursor:pointer}.nav-backdrop.is-open{opacity:1;visibility:visible}.nav-drawer{display:flex;flex-direction:column;position:fixed;top:0;right:0;height:100dvh;width:min(80vw,300px);padding:14px 20px 28px;background:var(--surface-raised);border-left:1px solid var(--line);box-shadow:var(--shadow-md);transform:translate(100%);visibility:hidden;transition:transform .26s ease,visibility .26s ease;z-index:50}.nav-drawer.is-open{transform:translate(0);visibility:visible}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;border-radius:var(--radius-sm);border:1px solid transparent;line-height:1;transition:transform .08s ease,box-shadow .12s ease,opacity .12s ease,background .12s ease;-webkit-user-select:none;user-select:none}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--text);color:var(--bg);box-shadow:var(--shadow-sm)}.btn-primary:hover{box-shadow:var(--shadow-md)}.btn-primary:disabled{opacity:.35;cursor:not-allowed;box-shadow:none;transform:none}.form-group{margin-bottom:18px}.form-group label{display:block;font-size:12px;font-weight:600;color:var(--text-soft);margin-bottom:7px;text-transform:uppercase;letter-spacing:.07em}.form-group input{width:100%;padding:12px 14px;font-size:16px;font-family:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);transition:border-color .12s ease,box-shadow .12s ease;-webkit-appearance:none}.form-group textarea{width:100%;min-height:118px;padding:12px 14px;font-size:16px;font-family:inherit;line-height:1.5;color:var(--text);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);resize:vertical;transition:border-color .12s ease,box-shadow .12s ease;-webkit-appearance:none}.form-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.form-group input:disabled{color:var(--text-soft);background:color-mix(in srgb,var(--surface) 78%,var(--line));cursor:not-allowed}.form-error{padding:11px 14px;background:color-mix(in srgb,var(--danger) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--danger) 28%,transparent);border-radius:var(--radius-sm);color:var(--danger);font-size:14px;margin-bottom:18px}.form-success-box{padding:11px 14px;background:color-mix(in srgb,var(--success) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--success) 30%,transparent);border-radius:var(--radius-sm);color:var(--success);font-size:14px;font-weight:500;margin-bottom:18px}.field-help{margin-top:7px;font-size:13px;color:var(--text-faint)}.auth-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:32px 24px}.auth-card{width:100%;max-width:372px}.auth-head{text-align:center;margin-bottom:36px}.auth-head .brand{font-size:26px;display:inline-block;margin-bottom:14px}.auth-head .tagline{font-family:var(--font-serif);font-size:16px;font-style:italic;color:var(--text-soft);line-height:1.45}.auth-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:30px 28px}.auth-panel h1{font-family:var(--font-serif);font-size:21px;font-weight:600;letter-spacing:-.01em;margin-bottom:22px}.auth-panel .btn{width:100%;padding:12px 20px;margin-top:6px}.auth-footer{margin-top:22px;font-size:14px;color:var(--text-soft);text-align:center}.auth-footer a{color:var(--accent);font-weight:500}.auth-footer a:hover{text-decoration:underline;text-underline-offset:3px}.profile-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:28px}.username-field{display:flex;align-items:center;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);transition:border-color .12s ease,box-shadow .12s ease}.username-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.username-field span{padding-left:14px;font-size:16px;font-weight:600;color:var(--text-faint)}.username-field input{border:0;background:transparent;box-shadow:none;padding-left:4px}.username-field input:focus{box-shadow:none}.toggle-row{display:grid;grid-template-columns:20px 1fr;gap:12px;align-items:start;margin:10px 0 20px;padding:16px;background:color-mix(in srgb,var(--surface-raised) 76%,var(--bg));border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer}.toggle-row input{width:18px;height:18px;margin-top:2px;accent-color:var(--accent)}.toggle-row strong{display:block;font-size:15px;line-height:1.3;color:var(--text)}.toggle-row small{display:block;margin-top:4px;font-size:13px;line-height:1.4;color:var(--text-soft)}.public-preview{display:flex;flex-direction:column;gap:4px;margin-bottom:22px;padding:14px 16px;background:color-mix(in srgb,var(--accent) 8%,var(--surface-raised));border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));border-radius:var(--radius-sm)}.public-preview.muted{background:var(--surface-raised);border-color:var(--line)}.public-preview span{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--text-faint)}.public-preview a{width:fit-content;color:var(--accent);font-size:15px;font-weight:600;overflow-wrap:anywhere}.public-preview a:hover{text-decoration:underline;text-underline-offset:3px}.form-actions{display:flex;justify-content:flex-end}.date-header{margin-bottom:30px}.date-header .eyebrow{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.13em;color:var(--accent);margin-bottom:8px}.date-header h1{font-family:var(--font-serif);font-size:clamp(28px,7vw,36px);font-weight:600;letter-spacing:-.02em;line-height:1.05;margin-bottom:10px}.date-header .week-label{font-size:14px;color:var(--text-soft)}.week-link{color:inherit;border-bottom:1px solid var(--line-strong);transition:color .12s ease,border-color .12s ease}.week-link:hover{color:var(--accent);border-color:var(--accent)}.public-head{margin-bottom:24px}.public-bio{margin-top:18px;font-family:var(--font-serif);font-size:18px;line-height:1.55;color:var(--text)}.archive-stat{margin-top:16px;font-size:13px;color:var(--text-faint)}.composer{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:8px 8px 0;transition:border-color .15s ease,box-shadow .15s ease}.composer:focus-within{border-color:var(--line-strong);box-shadow:var(--shadow-md),0 0 0 3px color-mix(in srgb,var(--accent) 9%,transparent)}.composer-input{position:relative}.composer-backdrop,.composer textarea{font-family:var(--font-serif);font-size:21px;line-height:1.6;letter-spacing:normal;padding:18px;border:0;margin:0;box-sizing:border-box;white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word}.composer-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;color:var(--text);z-index:0}.composer-backdrop .tag{color:var(--accent)}.composer textarea{position:relative;z-index:1;display:block;width:100%;min-height:132px;resize:none;background:transparent;color:transparent;caret-color:var(--text);-webkit-appearance:none}.composer textarea:focus{outline:none}.composer textarea::placeholder{color:var(--text-faint);font-style:italic}.tag-suggest{position:absolute;z-index:5;min-width:158px;max-width:240px;max-height:222px;overflow-y:auto;padding:5px;margin:0;list-style:none;background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-md)}.tag-suggest button{display:flex;align-items:baseline;justify-content:space-between;gap:14px;width:100%;padding:8px 10px;font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--text);background:none;border:none;border-radius:6px;text-align:left}.tag-suggest li.active button,.tag-suggest button:hover{background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent)}.tag-suggest .count{font-size:12px;font-variant-numeric:tabular-nums;color:var(--text-faint)}.tag-suggest li.active .count,.tag-suggest button:hover .count{color:var(--accent)}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px 12px;border-top:1px solid var(--line)}.footer-status{font-size:13px;min-height:18px}.footer-status .form-success{color:var(--success);font-weight:500}.footer-status .inline-error{color:var(--danger)}.footer-status .status-offline{color:var(--warning);font-weight:500}.footer-status .status-muted{color:var(--text-faint)}.footer-actions{display:flex;align-items:center;gap:16px}.char-ring{display:block;flex:none}.char-ring .ring-track{stroke:var(--line-strong)}.char-ring .ring-fill{transition:stroke-dashoffset .25s ease,stroke .2s ease}.char-ring .ring-count{font-family:var(--font-sans);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;fill:var(--text-soft)}.entries-section{margin-top:56px;padding-top:36px;border-top:1px solid var(--line)}.section-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);margin-bottom:24px}.timeline{display:flex;flex-direction:column}.timeline-month{font-family:var(--font-serif);font-size:15px;font-style:italic;color:var(--text-soft);margin:28px 0 16px}.timeline-month:first-child{margin-top:0}.entry-item{display:grid;grid-template-columns:56px 1fr;gap:18px;padding:14px 0;align-items:baseline;border-bottom:1px solid var(--line)}.entry-item:last-child{border-bottom:none}.entry-date{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;padding-top:3px}.entry-date .d-day{font-size:19px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.entry-date .d-wd{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint)}.entry-content{font-family:var(--font-serif);font-size:17px;line-height:1.55;color:var(--text)}.tag{color:var(--accent);font-style:normal;border-radius:3px;transition:color .12s ease}.tag:hover{text-decoration:underline;text-underline-offset:2px}.tag-inline{color:var(--accent)}.tag-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}.tag-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;font-size:13px;font-weight:500;color:var(--text-soft);background:var(--surface);border:1px solid var(--line);border-radius:999px;transition:color .12s ease,background .12s ease,border-color .12s ease}.tag-pill:hover{color:var(--text);border-color:var(--line-strong)}.tag-pill.active{color:var(--bg);background:var(--text);border-color:var(--text)}.tag-pill .count{font-size:11px;font-variant-numeric:tabular-nums;color:var(--text-faint)}.tag-pill:hover .count{color:var(--text-soft)}.tag-pill.active .count{color:color-mix(in srgb,var(--bg) 65%,transparent)}.memory-list{display:flex;flex-direction:column;gap:24px}.memory{border-left:2px solid color-mix(in srgb,var(--accent) 45%,transparent);padding-left:18px}.memory-when{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:7px}.memory-text{font-family:var(--font-serif);font-size:18px;line-height:1.55;color:var(--text)}.week-nav{display:flex;justify-content:space-between;margin-bottom:26px}.week-nav-btn{font-size:14px;color:var(--text-soft);transition:color .12s ease}.week-nav-btn:hover{color:var(--text)}.week-nav-btn.is-disabled{color:var(--text-faint);opacity:.5;cursor:default}.week-grid{display:flex;flex-direction:column}.week-day{display:grid;grid-template-columns:96px 1fr;gap:18px;padding:15px 0;border-bottom:1px solid var(--line);align-items:baseline}.week-day:last-child{border-bottom:none}.wd-when{display:flex;flex-direction:column}.wd-name{font-size:14px;font-weight:600;color:var(--text)}.wd-num{font-size:12px;color:var(--text-faint);font-variant-numeric:tabular-nums}.week-day.is-today .wd-name{color:var(--accent)}.week-day-content{font-family:var(--font-serif);font-size:17px;line-height:1.55;color:var(--text)}.week-day.is-empty .week-day-content{font-style:italic}.wd-blank{color:var(--text-faint)}.week-total{margin-top:24px;font-size:14px;color:var(--text-soft)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:14px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:20px}.stat-value{font-family:var(--font-serif);font-size:30px;font-weight:600;letter-spacing:-.02em;line-height:1.1;color:var(--text)}.stat-value--text{font-size:21px}.stat-label{margin-top:9px;font-size:12px;color:var(--text-soft)}.stats-section{margin-top:48px;padding-top:32px;border-top:1px solid var(--line)}.export-note{font-size:15px;line-height:1.5;color:var(--text-soft);max-width:30rem;margin-bottom:18px}.export-actions{display:flex;flex-wrap:wrap;gap:10px}.export-btn{background:var(--surface);border:1px solid var(--line-strong);color:var(--text)}.export-btn:hover{border-color:var(--text);box-shadow:var(--shadow-sm)}.empty{color:var(--text-soft);font-family:var(--font-serif);font-size:17px;font-style:italic}.empty a{color:var(--accent);font-style:normal;text-decoration:underline;text-underline-offset:3px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}}@media (max-width: 520px){.container{padding:0 18px}main{padding-top:34px}header nav{padding:12px 18px}.nav-links{gap:14px}.nav-links a,.nav-links .btn-ghost{font-size:13px}.profile-panel{padding:22px 18px}.form-actions{justify-content:stretch}.form-actions .btn{width:100%}}
