:root{--font-serif:"Songti SC", "STSong", "Noto Serif CJK SC", Georgia, serif;--font-display:"Bodoni 72", "Didot", "Times New Roman", serif;--font-sans:-apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif;--font-mono:"SFMono-Regular", Consolas, monospace;--font-body:var(--font-serif);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--radius-sm:12px;--radius-md:18px;--radius-lg:24px;--radius-pill:999px;--page-width:480px;--touch-target:44px;--motion-fast:.15s;--color-ink:#302c30;--color-muted:#756b72;--color-border:#cfc1c9;--color-edge:#ffffffb3;--color-surface:#ffffff40;--color-dialog:#f8f1f5;--color-primary:#302c30;--color-on-primary:#fffafb;--color-danger:#a33258;--color-focus:#813d61;--color-scrim:#30283066}:root,[data-palette=rose]{--color-bg:#f4edf0;--color-accent:#d6a9be;--color-accent-soft:#f3dfe9;--color-accent-text:#8d526e;--color-ink:#302c30;--color-muted:#756b72}[data-palette=mauve]{--color-bg:#eeeaf0;--color-accent:#b7a5c7;--color-accent-soft:#e7dfee;--color-accent-text:#735884;--color-ink:#332e39;--color-muted:#706578}[data-palette=warm]{--color-bg:#f5f1e9;--color-accent:#c7b49f;--color-accent-soft:#ece3d7;--color-accent-text:#7d6146;--color-ink:#342e28;--color-muted:#736b60}[data-font=serif]{--font-body:var(--font-serif)}[data-font=sans]{--font-body:var(--font-sans)}[data-font=mono]{--font-body:var(--font-mono)}*{box-sizing:border-box}html{background:var(--color-bg);min-width:320px}body{color:var(--color-ink);font:16px/1.6 var(--font-body);-webkit-font-smoothing:antialiased;margin:0}button,input,textarea,select{font:inherit;color:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button,input,textarea{border:1px solid var(--color-border)}button{background:0 0}button:active:not(:disabled),a:active{opacity:.7}:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}h2{font-size:23px}input,textarea{border-radius:var(--radius-sm);background:var(--color-surface);width:100%;min-width:0;padding:12px 14px}textarea{resize:vertical}input[type=checkbox]{width:19px;height:19px;accent-color:var(--color-accent-text);flex:none;margin:0}input[type=date],input[type=time]{min-height:48px}input::placeholder,textarea::placeholder{color:var(--color-muted);opacity:1}.app-shell{width:min(100%, var(--page-width));isolation:isolate;flex-direction:column;min-height:100svh;margin:0 auto;display:flex;position:relative}.app-shell:before{content:"";z-index:-1;pointer-events:none;opacity:.18;background:url(/paper.svg);position:absolute;inset:0}main{flex:1;min-width:0}.brand-footer{padding:24px 22px max(18px, env(safe-area-inset-bottom));justify-content:space-between;align-items:center;gap:20px;display:flex}.brand-footer>span{font:italic 23px/1 var(--font-display)}.brand-footer small{font:8px/1.7 var(--font-serif);letter-spacing:1.1px}.page{padding:max(18px, env(safe-area-inset-top)) 22px 12px}.page-header{align-items:center;gap:8px;min-height:48px;display:flex}.page-header>.icon-button{margin-left:-10px}.page-header-action{margin-left:auto}.icon-button{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-sm);border:none;flex:none;justify-content:center;align-items:center;display:inline-flex}.editorial-heading{margin:22px 0 30px}.editorial-heading h1{font:500 clamp(43px, 12vw, 60px)/1.05 var(--font-display);letter-spacing:-2.5px;text-wrap:balance}.heading-star{color:var(--color-accent-text);vertical-align:top;margin:0 0 0 5px}.editorial-heading p{text-align:center;font:italic 23px/1.35 var(--font-display);color:var(--color-accent-text);margin:6px 0 12px}.short-rule{opacity:.5;background:currentColor;width:27px;height:1px;margin:12px 0;display:block}.button{border-radius:var(--radius-sm);border:1px solid var(--color-edge);min-height:48px;transition:opacity var(--motion-fast), background var(--motion-fast);justify-content:center;align-items:center;gap:8px;padding:10px 18px;display:inline-flex}.button--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.button--soft{background:var(--color-surface)}.button--plain{border-color:#0000}.button-pair{gap:10px;margin-top:24px;display:flex}.button-pair>*{flex:1}.segmented{border:1px solid var(--color-edge);border-radius:var(--radius-md);background:var(--color-surface);padding:3px;display:flex}.segmented button{border:1px solid #0000;border-radius:14px;flex:1;min-height:44px;padding:6px}.segmented button[aria-pressed=true]{background:var(--color-accent-soft);border-color:var(--color-edge)}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:320px;padding:60px 0;display:flex}.empty-icon{border:1px solid var(--color-edge);background:var(--color-surface);border-radius:20px;place-items:center;width:74px;height:74px;margin-bottom:24px;display:grid}.empty-state h2{margin-bottom:10px;font-size:24px}.empty-state p{color:var(--color-muted);max-width:28ch}.empty-state>.button{margin-top:24px}.search-field{border:1px solid var(--color-edge);border-radius:var(--radius-md);background:var(--color-surface);align-items:center;gap:10px;margin:20px 0 10px;padding:0 14px;display:flex}.search-field input{background:0 0;border:none;padding-left:0}.search-field:focus-within{outline:2px solid var(--color-focus);outline-offset:2px}.search-field input:focus{outline:none}.todo-row{border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:6px;min-height:58px;display:flex}.todo-check{cursor:pointer;flex:1;align-items:center;gap:12px;min-width:0;min-height:48px;padding:13px 0;display:flex}.todo-text{overflow-wrap:anywhere;min-width:0}.todo-text small{color:var(--color-muted);font-size:13px;display:block}.is-complete .todo-text>span{color:var(--color-muted);text-decoration:line-through}.todo-row .error-message{flex-basis:100%}.add-todo-button{width:100%;margin-top:24px}.form-stack{flex-direction:column;gap:18px;display:flex}.form-stack label:not(.switch-row){flex-direction:column;gap:8px;display:flex}.form-pair{grid-template-columns:1fr 1fr;gap:12px;display:grid}.switch-row{justify-content:space-between;align-items:center;min-height:48px;display:flex}.form-stack .button-pair{margin-top:4px}.error-message{color:var(--color-danger);border-radius:var(--radius-sm);border:1px solid;padding:10px 12px;font-size:14px}.loading-state{color:var(--color-muted);text-align:center;padding:48px 24px}.dialog{border:1px solid var(--color-edge);background:var(--color-dialog);color:var(--color-ink);max-height:90dvh;width:min(100%, var(--page-width));max-width:100%;font-family:var(--font-body);padding:0;overflow:auto}.dialog::backdrop{background:var(--color-scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dialog--sheet{border-radius:28px 28px 0 0;margin:auto auto 0}.dialog--modal{border-radius:22px;width:min(100% - 40px,400px);margin:auto}.dialog-content{padding:12px 24px max(24px, env(safe-area-inset-bottom))}.dialog--modal .dialog-content{padding-top:20px}.sheet-handle{background:var(--color-border);border-radius:4px;width:34px;height:4px;margin:0 auto 14px;display:block}.dialog-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.dialog-header h2{font-size:24px}.theme-preview{border:1px solid var(--color-edge);border-radius:var(--radius-md);background:var(--color-bg);font-family:var(--font-body);text-align:center;color:var(--color-ink);padding:20px}.theme-preview small{text-align:left;color:var(--color-muted);display:block}.preview-aa{font:italic 80px/1.3 var(--font-body);display:block}.theme-preview em{color:var(--color-accent-text);margin-top:8px;display:block}.theme-section{margin:28px 0}.theme-section h2{margin-bottom:14px;font-size:20px}.palette-options{gap:8px;display:grid}.palette-option{border:1px solid var(--color-edge);background:var(--color-surface);border-radius:var(--radius-sm);align-items:center;gap:16px;width:100%;min-height:60px;padding:12px 16px;display:flex}.palette-option[aria-pressed=true]{border-color:var(--color-accent-text)}.palette-check{width:22px;color:var(--color-accent-text);margin-left:auto}.swatches{gap:5px;display:flex}.swatches i{background:#d6a9be;border:1px solid #fff;border-radius:50%;width:26px;height:26px}.swatches i:nth-child(2){background:#faf6f8}.swatches i:nth-child(3){background:#70686e}.swatches--mauve i:first-child{background:#b7a5c7}.swatches--mauve i:nth-child(2){background:#e7dfee}.swatches--warm i:first-child{background:#c7b49f}.swatches--warm i:nth-child(2){background:#f5f1e9}.theme-save-state{min-height:24px;color:var(--color-muted);font-size:14px}.error-page{gap:24px;padding:50px 24px}.skip-link{background:var(--color-dialog);z-index:10;padding:12px;position:absolute;top:-100px;left:16px}.skip-link:focus{top:12px}.muted{color:var(--color-muted)}@media (width>=600px){body{background:color-mix(in srgb, var(--color-bg) 75%, #d6cbd0)}.app-shell{background-color:var(--color-bg);border-inline:1px solid var(--color-edge)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.replaceable-image{background:0 0;border:0;width:100%;height:100%;padding:0;display:block;position:relative;overflow:hidden}.slot-photo{object-fit:cover;width:100%;height:100%;display:block}.reference-region{pointer-events:none;display:block;position:absolute;inset:0;overflow:hidden}.reference-region img{pointer-events:none;max-width:none;display:block;position:absolute}.image-file-input{display:none}.replace-image-hint{color:#fff;min-height:30px;font:12px/1.3 var(--font-sans);opacity:0;transition:opacity var(--motion-fast);background:#302530b8;justify-content:center;align-items:center;gap:5px;padding:6px 4px;display:flex;position:absolute;inset:auto 0 0}.replaceable-image:hover .replace-image-hint,.replaceable-image:focus-visible .replace-image-hint,.replaceable-image:disabled .replace-image-hint{opacity:1}.wallpaper-picker{border-radius:var(--radius-md);border:1px solid var(--color-edge);height:150px}.wallpaper-picker~.button{margin-top:12px}.reference-wallpaper{position:absolute;inset:0;overflow:hidden}.wallpaper-tile{aspect-ratio:853/220;width:100%;display:block;position:relative}.wallpaper-tile:nth-child(2n){transform:scaleY(-1)}
