:root{--bg: #f7f3ec;--surface: #ffffff;--ink: #26231f;--muted: #7b746a;--line: #e8e1d5;--accent: #d9623b;--accent-dark: #b94e2b;--accent-soft: #fbe7dd;--sage: #5f7d68;--sage-soft: #e3ece4;--gold: #e3a93b;--danger: #c2413a;--radius: 16px;--shadow: 0 1px 2px rgba(38, 35, 31, .04), 0 8px 24px rgba(38, 35, 31, .06);--font-display: "Fraunces", Georgia, serif;--font-ui: "Manrope", system-ui, sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;margin:0}button,input,textarea{font:inherit;color:inherit}.muted{color:var(--muted)}.small{font-size:13px}.error{color:var(--danger)}.splash{display:grid;place-items:center;min-height:100vh;color:var(--muted)}.btn{border:1px solid transparent;border-radius:999px;padding:9px 18px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark)}.btn-ghost{background:transparent;border-color:var(--line)}.btn-ghost:hover{background:var(--surface);border-color:#d8cfc0}.btn-danger{background:var(--danger);color:#fff}.btn-lg{padding:14px 30px;font-size:16px}.btn-sm{padding:5px 12px;font-size:13px}.danger-text{color:var(--danger)}.logo{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:19px;font-weight:600}.landing{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:48px;min-height:100vh;max-width:1120px;margin:0 auto;padding:48px 32px}.landing-copy h1{font-size:clamp(40px,5.5vw,64px);line-height:1.05;margin:40px 0 20px}.landing-copy h1 em{color:var(--accent);font-style:italic}.landing-copy p{font-size:18px;color:var(--muted);max-width:440px;margin:0 0 32px}.landing-art{position:relative;height:420px}.art-card{position:absolute;display:flex;flex-direction:column;gap:10px;width:280px;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.art-card strong{font-family:var(--font-display);font-size:18px}.art-card .tag{align-self:flex-start}.art-card .line{height:8px;border-radius:4px;background:var(--line)}.art-card .line.short{width:60%}.art-card .star{color:var(--gold);font-size:20px}.art-card-1{top:10px;left:20px;transform:rotate(-4deg)}.art-card-2{top:130px;left:150px;transform:rotate(3deg);z-index:1}.art-card-3{top:290px;left:40px;transform:rotate(-1.5deg);background:var(--accent-soft);border-color:#f3d2c2}@media(max-width:820px){.landing{grid-template-columns:1fr;padding:32px 16px}.landing-art{display:none}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 32px;border-bottom:1px solid var(--line);background:#f7f3ecd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10}.user{display:flex;align-items:center;gap:10px}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--sage-soft);color:var(--sage);font-size:12px;font-weight:700}.user-name{font-weight:600}.role-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent-dark);margin-right:8px}.content{max-width:1120px;margin:0 auto;padding:40px 32px 80px}.heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:28px}.heading h1{font-size:40px}.heading p{margin:4px 0 0}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:28px}.search{flex:0 1 320px;padding:10px 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface);outline:none}.search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:transparent;font-size:13px;font-weight:600;cursor:pointer}.chip:hover{background:var(--surface)}.chip.active{background:var(--ink);border-color:var(--ink);color:var(--bg)}.alert{padding:12px 16px;margin-bottom:20px;border-radius:12px;background:#fbe4e2;color:var(--danger)}.empty{text-align:center;padding:64px 16px;border:1.5px dashed var(--line);border-radius:var(--radius);color:var(--muted)}@media(max-width:640px){.topbar,.content{padding-left:16px;padding-right:16px}.user-name{display:none}}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.card{display:flex;flex-direction:column;gap:14px;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s}.card:hover{transform:translateY(-2px);box-shadow:0 1px 2px #26231f0a,0 14px 32px #26231f17}.card.favorite{border-top:3px solid var(--gold)}.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.card h2{font-size:20px;line-height:1.25}.star-btn{border:none;background:none;font-size:22px;line-height:1;color:#cfc6b8;cursor:pointer;padding:0}.star-btn.on{color:var(--gold)}.star-btn:disabled{cursor:default}.card-content{margin:0;color:#4d4740;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent-dark)}.tag-sage,.tags .tag:nth-child(2n){background:var(--sage-soft);color:var(--sage)}.author{margin:auto 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:14px;border-top:1px solid var(--line)}.card-actions{display:flex;align-items:center;gap:6px}.overlay{position:fixed;inset:0;display:grid;place-items:center;padding:16px;background:#26231f40;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:20}.dialog{display:flex;flex-direction:column;gap:16px;width:min(560px,100%);padding:28px;background:var(--surface);border-radius:20px;box-shadow:0 24px 64px #26231f33}.dialog h2{font-size:26px}.dialog label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14px}.dialog input:not([type=checkbox]),.dialog textarea{padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:#fdfbf8;font-weight:400;outline:none;resize:vertical}.dialog input:focus,.dialog textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.dialog label.checkbox{flex-direction:row;align-items:center;gap:8px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
