.life-app{--paper:#edf1ee;--card:#f8faf8;--ink:#17201c;--muted:#5e6b66;--line:#d4dcd7;--accent:#8a1c3a;--accent-ink:#fff;--teal:#1f5e55;--gold:#b8892b;--joy-0:#e3e8e5;--joy-1:#1f5e55;--serif:"Noto Serif JP", "Noto Serif TC", "Noto Serif SC", "Hiragino Mincho ProN", "Yu Mincho", serif;--mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;background:var(--paper);color:var(--ink);min-height:100vh}:root.dark .life-app{--paper:#111614;--card:#192120;--ink:#e6ece9;--muted:#94a39c;--line:#2b3633;--accent:#d2577b;--accent-ink:#120b0e;--teal:#55a99a;--gold:#d8ad55;--joy-0:#232c2a;--joy-1:#55a99a}.life-app .lf-serif{font-family:var(--serif)}.life-app .lf-mono{font-family:var(--mono);letter-spacing:.02em}.life-app .lf-muted{color:var(--muted)}.life-app .lf-accent{color:var(--accent)}.life-app .lf-card{background:var(--card);border:1px solid var(--line);border-radius:6px}.life-app .lf-line{border-color:var(--line)}.life-app .lf-btn{border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:.35rem;padding:.35rem .7rem;font-size:.8125rem;line-height:1.2;transition:background .15s,border-color .15s;display:inline-flex}.life-app .lf-btn:hover{border-color:var(--muted)}.life-app .lf-btn[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.life-app .lf-btn:disabled{opacity:.45;cursor:default}.life-app .lf-btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-family:var(--serif);box-shadow:0 6px 18px -8px color-mix(in oklab, var(--accent) 70%, transparent);border-radius:4px;padding:.85rem 2.5rem;font-size:1.05rem;font-weight:700}.life-app .lf-btn-primary:hover{filter:brightness(1.08);border-color:var(--accent)}.life-app .lf-chip{background:var(--teal);color:var(--paper);border-radius:3px;padding:.1rem .45rem;font-size:.75rem;display:inline-block}.life-app .lf-option{text-align:left;border:1px solid var(--line);background:var(--card);border-radius:4px;align-items:center;gap:.75rem;width:100%;padding:.8rem 1rem;transition:border-color .15s;display:flex}.life-app .lf-option:hover{border-color:var(--accent)}.life-app .lf-radio{flex-wrap:wrap;gap:.5rem;display:flex}.life-app .lf-radio label{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:4px;padding:.45rem .85rem;font-size:.875rem}.life-app .lf-radio input{opacity:0;pointer-events:none;position:absolute}.life-app .lf-radio label:has(input:checked){background:var(--ink);color:var(--paper);border-color:var(--ink)}.life-app .lf-radio label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.life-app .lf-input{border:1px solid var(--line);background:var(--card);width:100%;color:var(--ink);border-radius:4px;padding:.55rem .7rem;font-size:.9rem}.life-app .lf-bar{background:var(--joy-0);border-radius:2px;height:8px;overflow:hidden}.life-app .lf-bar>span{background:var(--teal);height:100%;transition:width .4s;display:block}.life-app .lf-mrz{font-family:var(--mono);letter-spacing:.08em;color:var(--muted);white-space:nowrap;font-size:.68rem;overflow:hidden}.life-app .lf-fade-in{animation:.5s both lf-fade}@keyframes lf-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.life-app .lf-overlay{z-index:50;background:color-mix(in oklab, var(--paper) 55%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.life-app .lf-dialog{width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;box-shadow:0 24px 60px -20px #00000059}
