*,*:before,*:after{box-sizing:border-box}*{margin:0}html{interpolate-size:allow-keywords}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p{overflow-wrap:break-word;text-wrap:pretty}h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;text-wrap:balance}#root,#app{isolation:isolate}:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-weight:450;color-scheme:light dark;--color-bg: #faf6f0;--color-surface: #f2ead9;--color-surface-alt: #ffffff;--color-sage: #7c9473;--color-sage-dark: #5f7757;--color-clay: #c17d54;--color-clay-soft: #f1ded0;--color-text: #3a352c;--color-text-muted: #79735f;--color-border: #e3dac8;--shadow-soft: 0 6px 20px rgba(58, 53, 44, .08);--radius-lg: 24px;--radius-md: 16px;--radius-pill: 999px;--transition-soft: .32s ease}@media(prefers-color-scheme:dark){:root{--color-bg: #24231f;--color-surface: #2e2c26;--color-surface-alt: #2a2924;--color-sage: #93ac89;--color-sage-dark: #b7cbae;--color-clay: #d69b76;--color-clay-soft: #40352c;--color-text: #f0ece2;--color-text-muted: #ada596;--color-border: #423f37;--shadow-soft: 0 6px 20px rgba(0, 0, 0, .25)}}body{min-height:100dvh;background-color:var(--color-bg);color:var(--color-text)}.page{max-width:80ch;margin-inline:auto;padding:2rem}.journal{max-width:760px;margin-inline:auto;padding:2.5rem 1.5rem 4rem;display:flex;flex-direction:column;gap:2.5rem}.journal__header{text-align:center;display:flex;flex-direction:column;gap:.75rem}.journal__header h1{font-size:clamp(1.75rem,4vw,2.25rem);font-weight:600;color:var(--color-sage-dark)}.journal__tagline{color:var(--color-text-muted);font-size:1.05rem;max-width:52ch;margin-inline:auto}.entry-form{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.75rem;display:flex;flex-direction:column;gap:1.25rem;box-shadow:var(--shadow-soft)}.entry-form h2{font-size:1.25rem;font-weight:600}.field{display:flex;flex-direction:column;gap:.5rem}.field label,.field-label{font-weight:500}.entry-form textarea,.entry-form input[type=file]{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.75rem 1rem;background:var(--color-bg);color:inherit;transition:border-color var(--transition-soft)}.entry-form textarea:focus-visible,.entry-form input[type=file]:focus-visible{outline:2px solid var(--color-sage);outline-offset:2px}.entry-form__preview{margin-top:.5rem;width:120px;height:120px;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--color-border)}.rating-picker{display:flex;flex-wrap:wrap;gap:.5rem}.rating-pill input{position:absolute;opacity:0;width:1px;height:1px}.rating-pill{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;width:2.75rem;height:2.75rem;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-soft),color var(--transition-soft),border-color var(--transition-soft)}.rating-pill__emoji{font-size:1.05rem;line-height:1}.rating-pill__number{font-size:.65rem;font-weight:600;line-height:1}.rating-pill:has(input:focus-visible){outline:2px solid var(--color-sage);outline-offset:2px}.rating-pill--selected{background:var(--color-sage);border-color:var(--color-sage);color:#fff}.button{border:none;border-radius:var(--radius-pill);padding:.7rem 1.5rem;font-weight:600;cursor:pointer;transition:background var(--transition-soft),color var(--transition-soft),border-color var(--transition-soft)}.button--primary{background:var(--color-sage);color:#fff;align-self:flex-start;box-shadow:var(--shadow-soft)}.button--primary:hover{background:var(--color-sage-dark)}.button--ghost{background:transparent;border:1px solid var(--color-border);color:var(--color-text-muted);padding:.5rem 1rem}.button--ghost:hover{border-color:var(--color-clay);color:var(--color-clay)}.journal__log{display:flex;flex-direction:column;gap:1.25rem}.journal__log-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem}.journal__log-header h2{font-size:1.25rem;font-weight:600}.filter-tabs{display:flex;gap:.25rem;background:var(--color-surface);padding:.3rem;border-radius:var(--radius-pill)}.filter-tab{border:none;background:transparent;padding:.5rem 1rem;border-radius:var(--radius-pill);font-weight:500;color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-soft),color var(--transition-soft)}.filter-tab--active{background:var(--color-surface-alt);color:var(--color-sage-dark);box-shadow:var(--shadow-soft)}.entry-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem}.entry-list__empty{text-align:center;color:var(--color-text-muted);padding:2.5rem 1.5rem;border:1px dashed var(--color-border);border-radius:var(--radius-lg)}.entry-card{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-soft);animation:fade-in .42s ease}.entry-card__photo{aspect-ratio:4 / 3;background:var(--color-surface);display:flex;align-items:center;justify-content:center}.entry-card__photo img{width:100%;height:100%;object-fit:cover}.entry-card__photo-placeholder{font-size:2.5rem}.entry-card__body{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.35rem;flex:1}.entry-card__name{font-weight:600}.entry-card__rating{color:var(--color-clay);font-weight:600;font-size:.9rem}.entry-card__actions{display:flex;justify-content:space-between;align-items:center;padding:0 1.25rem 1.25rem;gap:.5rem}.favorite-button{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:.45rem .9rem;font-size:.85rem;color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-soft),color var(--transition-soft),border-color var(--transition-soft)}.favorite-button--active{background:var(--color-clay-soft);border-color:var(--color-clay);color:var(--color-clay)}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.entry-card{animation:none}}
