:root{--surface: #faf5ea;--paper: #f2eadb;--line: #d8cdb8;--accent-soft: #e5e8d2;--brass: #a6884f;--ink-soft: #6e6354;--accent: #4b5d43;--accent-dark: #3c4a35;--ink: #2b2620;--alert: #8a4b3f;--serif: "Hiragino Mincho ProN", "Yu Mincho", serif;--sans: "Hiragino Sans", "Yu Gothic", system-ui, sans-serif;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.75;-webkit-font-smoothing:antialiased}.app{max-width:42rem;margin:0 auto;padding:0 1.25rem env(safe-area-inset-bottom)}.app-header{display:flex;align-items:baseline;justify-content:space-between;padding:1.5rem 0 1rem;border-bottom:1px solid var(--line)}.app-title{font-family:var(--serif);font-size:1.15rem;letter-spacing:.08em;color:var(--ink);text-decoration:none}.app-main{padding:1.5rem 0 calc(3rem + env(safe-area-inset-bottom))}.banner{margin:.75rem 0 0;padding:.5rem .75rem;background:var(--surface);border-left:2px solid var(--brass);color:var(--ink-soft);font-size:.82rem}.banner-error{border-left-color:var(--alert)}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:2px;overflow:hidden}.segmented button{padding:.4rem .85rem;background:transparent;color:var(--ink-soft);border:none;border-radius:0;font-size:.82rem;letter-spacing:.04em}.segmented button+button{border-left:1px solid var(--line)}.segmented button.is-active{background:var(--accent-soft);color:var(--ink)}.calendar{margin-top:2rem}.month{margin-top:1.25rem}.month-scene-frame{position:relative;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--paper)}.month-scene{display:block;width:100%;height:7rem}@media(min-width:40rem){.month-scene{height:9rem}}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin:1.25rem 0}.calendar-title{text-align:center}.calendar-title h2{display:flex;align-items:baseline;justify-content:center;gap:.55rem;margin:0;font-weight:400}.month-kanji{font-family:var(--serif);font-size:1.35rem;letter-spacing:.14em;color:var(--ink)}.month-plain{font-size:.72rem;letter-spacing:.1em;color:var(--ink-soft)}.calendar-head .muted{margin:.3rem 0 0;font-size:.7rem;letter-spacing:.08em}.month-back{display:block;margin:1.25rem auto 0}.calendar-nav{width:2.2rem;height:2.2rem;padding:0;background:transparent;color:var(--ink-soft);border:none;font-size:1.2rem;line-height:1}.calendar-nav:hover:not(:disabled){color:var(--ink)}.calendar-nav:disabled{opacity:.2}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);row-gap:.15rem;max-width:24rem;margin:0 auto}.calendar-weekday{text-align:center;font-size:.66rem;letter-spacing:.12em;color:var(--ink-soft);padding-bottom:.6rem}.calendar-weekday.is-sun{color:var(--alert)}.calendar-day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;height:2.9rem;padding:0;background:transparent;color:var(--ink-soft);border:none;border-radius:2px;font-family:var(--serif);font-size:.95rem}.calendar-day:hover:not(:disabled) .calendar-num{color:var(--ink)}.calendar-num{line-height:1;transition:color .12s ease}.calendar-day.has-entry .calendar-num{color:var(--ink)}.calendar-day.has-entry:after{content:"";width:.3rem;height:.3rem;border-radius:50%;background:var(--accent)}.calendar-day:not(.has-entry):after{content:"";width:.3rem;height:.3rem}.calendar-day.is-outside{opacity:.25}.calendar-day.is-future{opacity:.2;cursor:default}.calendar-day:disabled:not(.is-future){opacity:.4;cursor:default}.calendar-day.is-today .calendar-num{color:var(--accent);font-weight:600;position:relative}.calendar-day.is-today .calendar-num:after{content:"";position:absolute;left:50%;bottom:-.28rem;transform:translate(-50%);width:1.15em;height:1px;background:var(--brass)}.entry-list{list-style:none;margin:0;padding:0}.entry-item{border-bottom:1px solid var(--line)}.entry-item a{display:block;padding:1rem 0;color:inherit;text-decoration:none}.entry-date{display:block;font-size:.76rem;color:var(--ink-soft);letter-spacing:.06em;margin-bottom:.2rem}.entry-excerpt{margin:0;color:var(--ink-soft);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.entry-month{font-family:var(--serif);font-size:.82rem;letter-spacing:.14em;color:var(--ink-soft);margin:2rem 0 .5rem}.entry-month:first-child{margin-top:0}.month-picker{border:1px solid var(--line);background:var(--surface);padding:1rem;margin-bottom:1.25rem}.month-picker-years{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:.85rem}.month-picker-years span{font-family:var(--serif);letter-spacing:.08em}.month-picker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem}.month-picker-grid button{padding:.45rem 0;background:transparent;color:var(--ink-soft);border:1px solid transparent;font-family:var(--serif);font-size:.85rem}.month-picker-grid button:hover:not(:disabled){background:var(--accent-soft);color:var(--ink)}.month-picker-grid button.is-current{border-color:var(--brass);color:var(--ink)}.calendar-title h2 button,.calendar-title h2 button:hover:not(:disabled){padding:0 0 .15rem;background:transparent;border:none;border-bottom:1px dotted var(--line);border-radius:0;color:inherit;font:inherit}.calendar-title h2 button:hover:not(:disabled){border-bottom-color:var(--brass)}.proverb-card{background:var(--surface);border:1px solid var(--line);padding:1.25rem;margin-bottom:.85rem}.proverb-name{font-family:var(--serif);font-size:1.35rem;margin:0 0 .35rem;letter-spacing:.04em}.proverb-origin{margin:-.4rem 0 .7rem;font-size:.74rem;letter-spacing:.06em;color:var(--brass)}.proverb-meaning{margin:0 0 1rem;color:var(--ink-soft)}.proverb-why-label{font-size:.72rem;color:var(--ink-soft);letter-spacing:.08em;margin:0 0 .25rem}.proverb-why{margin:0;padding-left:.75rem;border-left:1px solid var(--brass);color:var(--ink-soft);font-size:.9rem}.proverb-story{margin:0;color:var(--ink-soft);font-size:.9rem;line-height:1.9}.no-match{font-family:var(--serif);color:var(--ink-soft);text-align:center;padding:2.5rem 0}.editor-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.editor-date{color:var(--ink-soft);font-family:var(--serif);font-size:1.05rem;letter-spacing:.08em}.editor-body{width:100%;height:calc(100dvh - 18rem);min-height:16rem;padding:0;background-color:transparent;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(2rem - 1px),var(--line) calc(2rem - 1px),var(--line) 2rem);background-attachment:local;color:var(--ink);border:none;font-family:inherit;font-size:1rem;line-height:2rem;resize:none}.editor-body:focus{outline:none}.editor-body::placeholder{color:var(--ink-soft);opacity:.5}.section-label{font-size:.74rem;color:var(--ink-soft);letter-spacing:.1em;margin:2rem 0 .75rem;padding-bottom:.35rem;border-bottom:1px solid var(--line)}.diary-body{white-space:pre-wrap;margin:0 0 1rem}button,.button{display:inline-block;padding:.55rem 1.1rem;background:var(--accent);color:var(--surface);border:none;border-radius:2px;font-family:inherit;font-size:.9rem;cursor:pointer;text-decoration:none;transition:background .12s ease,color .12s ease}button:hover:not(:disabled),.button:hover{background:var(--accent-dark)}button:disabled{opacity:.4;cursor:default}.button-quiet{background:transparent;color:var(--ink-soft);border:1px solid var(--line)}.button-quiet:hover:not(:disabled){background:var(--accent-soft);color:var(--ink)}.button-danger{background:transparent;color:var(--alert);border:1px solid var(--line)}.button-danger:hover:not(:disabled){background:var(--alert);color:var(--surface)}.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.muted{color:var(--ink-soft);font-size:.85rem}.detail-footer{margin-top:3.5rem;padding-top:1.25rem;border-top:1px solid var(--line);text-align:center}.detail-footer button{background:transparent;color:var(--ink-soft);border:none;font-size:.78rem;letter-spacing:.06em;text-decoration:underline;text-underline-offset:.25em}.detail-footer button:hover{background:transparent;color:var(--alert)}.setting-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line);font-size:.9rem}.setting-row dt{color:var(--ink-soft)}.setting-row dd{margin:0;text-align:right}.scenes{display:grid;gap:1.5rem}.scenes-item{margin:0}.scenes-item figcaption{display:flex;align-items:baseline;gap:.55rem;margin-top:.5rem}.app-nav{display:flex;align-items:center;gap:1.1rem}.nav-icon{display:inline-flex;align-items:center;color:var(--ink-soft);text-decoration:none;font-size:1.15rem;line-height:1;transition:color .12s ease}.nav-icon:hover,.nav-icon.active{color:var(--accent)}.search{width:100%;margin-bottom:1rem;padding:.6rem .8rem;background:var(--surface);border:1px solid var(--line);border-radius:4px;color:var(--ink);font-size:.95rem}.search:focus{outline:none;border-color:var(--brass)}.tally{list-style:none;margin:0 0 1.5rem;padding:0}.tally li{display:grid;grid-template-columns:8rem 1fr 2rem;align-items:center;gap:.6rem;padding:.25rem 0;font-size:.82rem;color:var(--ink-soft)}.tally-bar{height:.4rem;min-width:2px;border-radius:2px;background:var(--accent-soft)}.tally-n{text-align:right;font-variant-numeric:tabular-nums}.review-note{margin:-.75rem 0 1.5rem;font-size:.76rem}.review-list{list-style:none;margin:0;padding:0}.review-list li{border-bottom:1px solid var(--line)}.review-list a{display:grid;grid-template-columns:3rem 1fr;gap:.2rem .8rem;padding:.85rem 0;color:inherit;text-decoration:none}.review-day{font-size:.76rem;color:var(--ink-soft);font-variant-numeric:tabular-nums}.review-trouble{color:var(--ink);font-size:.9rem}.review-trouble em{color:var(--ink-soft);font-style:normal}.review-proverb{grid-column:2;font-family:var(--serif);font-size:.86rem;color:var(--accent)}.review-proverb:before{content:"→ ";color:var(--ink-soft)}.review-unread{color:var(--line)}.panel{margin-bottom:1.5rem;padding:1.2rem;background:var(--surface);border-radius:4px}.mood-line,.mood-note{margin:.5rem 0 0;font-size:.7rem}.chart-note{margin:.6rem 0 0;font-size:.7rem}.count-note{margin:0 0 .75rem;font-size:.72rem}.emotion-lines{list-style:none;margin:.4rem 0 0;padding:0}.emotion-lines li{display:grid;grid-template-columns:4rem 1fr 2rem;align-items:center;gap:.5rem}.emotion-lines svg{width:100%;height:auto}.emotion-name{font-size:.72rem;color:var(--ink-soft)}.emotion-avg{text-align:right;font-size:.72rem;color:var(--ink-soft);font-variant-numeric:tabular-nums}.sort-toggle{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;background:transparent;border:1px solid var(--line);border-radius:999px;color:var(--ink-soft);font-size:.9rem}.sort-toggle:hover{background:transparent;color:var(--ink);border-color:var(--brass)}.segmented.range{display:flex;width:100%;margin-bottom:1.25rem}.segmented.range button{flex:1;text-align:center}.axis text{font-size:8px;fill:var(--ink-soft)}.review-head{margin:1.25rem 0 1rem;text-align:center}.review-head h2{margin:0;font-weight:400}.period-nav{display:flex;align-items:center;justify-content:center;gap:.4rem;margin:-.5rem 0 1.1rem}.period-label{margin:0;min-width:11rem;text-align:center;font-size:.78rem;letter-spacing:.08em;color:var(--ink)}.chart-wrap{position:relative}.chart-hit{cursor:pointer}.chart-tip{position:absolute;bottom:100%;transform:translate(-50%);max-width:14rem;padding:.4rem .6rem;background:var(--paper);border:1px solid var(--line);border-radius:4px;text-align:left;font-size:.72rem;line-height:1.5;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:auto}.chart-tip-date{margin-right:.5rem;color:var(--brass);font-variant-numeric:tabular-nums}.chart-tip-body{color:var(--ink-soft)}.icon-row{display:flex;align-items:center;gap:.5rem}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;padding:0;background:transparent;color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;font-size:1.05rem}.icon-button:hover:not(:disabled){background:var(--accent-soft);color:var(--ink);border-color:var(--brass)}.icon-button.is-primary{background:var(--accent);color:var(--surface);border-color:var(--accent)}.icon-button.is-primary:hover:not(:disabled){background:var(--accent-dark);color:var(--surface);border-color:var(--accent-dark)}.detail-footer button{display:inline-flex;align-items:center;gap:.4rem}.button-icon{display:inline-flex;align-items:center;gap:.45rem}.waiting{display:flex;flex-direction:column;align-items:center;gap:.9rem;padding:2.2rem 0 1.6rem}.book{position:relative;width:8.6rem;height:6rem;perspective:34rem}.book-page{position:absolute;top:0;bottom:0;width:50%;background:var(--surface);border:1px solid var(--line)}.book-page-left{left:0;border-right:none;border-radius:2px 0 0 2px}.book-page-right{right:0;border-left:none;border-radius:0 2px 2px 0}.book-page:after,.book-leaf:after{content:"";position:absolute;inset:.55rem .45rem;background-image:repeating-linear-gradient(to right,var(--ink-soft) 0 1.5px,transparent 1.5px .55rem);-webkit-mask-image:repeating-linear-gradient(to bottom,#000 0 2px,transparent 2px 7px);mask-image:repeating-linear-gradient(to bottom,#000 0 2px,transparent 2px 7px);opacity:.3}.book-leaf{position:absolute;top:0;bottom:0;left:0;width:50%;background:var(--surface);border:1px solid var(--line);border-right:none;border-radius:2px 0 0 2px;transform-origin:100% 50%;animation:leaf-turn 2.1s ease-in-out infinite;box-shadow:0 0 #2b262000}@keyframes leaf-turn{0%,5%{transform:rotateY(0);opacity:1;box-shadow:0 0 #2b262000}13%{box-shadow:-3px 2px 7px #2b262029}22%{transform:rotateY(-172deg);opacity:1;box-shadow:0 0 #2b262000}50%{transform:rotateY(-172deg);opacity:1}60%{transform:rotateY(-172deg);opacity:0}61%{transform:rotateY(0);opacity:0}78%,to{transform:rotateY(0);opacity:1}}.book-stitch{position:absolute;top:12%;bottom:12%;left:calc(50% - 1px);width:2px;background-image:repeating-linear-gradient(to bottom,var(--brass) 0 6px,transparent 6px 25%);opacity:.65}.reveal.is-fresh>*{animation:settle .75s cubic-bezier(.22,.61,.36,1) both}.reveal.is-fresh .proverb-name{animation:name-settle 1.05s cubic-bezier(.22,.61,.36,1) both}.reveal.is-fresh .proverb-origin{animation:settle .7s ease-out .5s both}.reveal.is-fresh .proverb-meaning{animation:settle .7s ease-out .72s both}.reveal.is-fresh .proverb-why-label{animation:settle .7s ease-out .98s both}.reveal.is-fresh .proverb-why{animation:settle .7s ease-out 1.06s both}.reveal.is-fresh .proverb-story{animation:settle .7s ease-out 1.2s both}@keyframes settle{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes name-settle{0%{opacity:0;letter-spacing:.5em}to{opacity:1;letter-spacing:normal}}@media(prefers-reduced-motion:reduce){.book-leaf,.reveal.is-fresh>*,.reveal.is-fresh .proverb-name,.reveal.is-fresh .proverb-origin,.reveal.is-fresh .proverb-meaning,.reveal.is-fresh .proverb-why-label,.reveal.is-fresh .proverb-why,.reveal.is-fresh .proverb-story{animation:none}}.sell{max-width:26rem;margin:0 auto;padding:3rem 0;text-align:center}.sell-title{font-family:var(--serif);font-size:1.6rem;letter-spacing:.2em;font-weight:400;margin:0 0 1.6rem}.sell-lead{font-size:.95rem;color:var(--ink);margin:0 0 1.6rem;line-height:2}.sell-block{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.4rem 0;margin-bottom:2rem}.sell-body{font-size:.85rem;color:var(--ink-soft);line-height:2;margin:0 0 .9rem;text-align:left}.sell-body:last-child{margin-bottom:0}.sell-price{margin-bottom:1.8rem}.sell-amount{font-family:var(--serif);font-size:1.1rem;letter-spacing:.1em;margin:0}.sell-amount strong{font-size:1.9rem;font-weight:400}.sell-note,.sell-fine{font-size:.72rem;color:var(--ink-soft);letter-spacing:.06em;margin:.5rem 0 0}.sell-cta{display:inline-block;padding:.7rem 2.6rem}.nav-link{color:var(--ink-soft);text-decoration:none;font-size:.85rem}.nav-link:hover{color:var(--ink)}.empty{text-align:center;color:var(--ink-soft);padding:3rem 0}
