:root { color-scheme: light; --ink:#292d27; --green:#365c50; --paper:#fcfaf6; --line:#ded5c5; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font:1rem/1.65 system-ui,sans-serif; }
a { color:var(--green); text-underline-offset:.2em; }
header,footer { padding:1.5rem max(1.25rem,calc((100vw - 1120px)/2)); border-bottom:1px solid var(--line); }
header { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.brand { font:1.65rem Georgia,serif; text-decoration:none; color:var(--ink); }
nav { display:flex; gap:1.5rem; flex-wrap:wrap; }
main { max-width:1120px; margin:3rem auto 5rem; padding:0 1.25rem; min-height:55vh; }
footer { border-top:1px solid var(--line); border-bottom:0; font-size:.9rem; }
h1,h2 { font-family:Georgia,serif; line-height:1.15; font-weight:400; overflow-wrap:anywhere; }
h1 { font-size:clamp(2rem,5vw,3.7rem); margin:1rem 0 1.5rem; }
h2 { font-size:1.9rem; }
.page-heading { display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; margin-bottom:2rem; }
button,.button { font:inherit; font-size:.95rem; border:1px solid var(--line); border-radius:2rem; padding:.65rem 1.15rem; background:white; color:var(--green); cursor:pointer; text-decoration:none; display:inline-block; }
button:hover,.button:hover { background:#eee8db; }
button:disabled { opacity:.5; cursor:wait; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid #ad652c; outline-offset:3px; }
#publish,#new-article { background:var(--green); color:white; }
.articles { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:2rem; }
.card { border-top:1px solid var(--line); padding-top:1.5rem; }
.card img { width:100%; aspect-ratio:4/3; object-fit:contain; background:#f1eada; border-radius:.5rem; }
.card h2 a { text-decoration:none; color:var(--ink); }
.eyebrow { font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:#955032; }
.reading { max-width:760px; margin:auto; }
.intro { font:1.35rem/1.6 Georgia,serif; }
.byline { font-size:.9rem; color:#61665e; }
figure { margin:2rem 0; }
figure img { display:block; max-width:100%; height:auto; margin:auto; border-radius:.4rem; }
.cover img { max-height:620px; object-fit:contain; }
.prose { font:1.2rem/1.85 Georgia,serif; overflow-wrap:anywhere; }
.prose h2 { margin-top:2.25rem; }
.manage-list { list-style:none; padding:0; }
.manage-list li { display:flex; gap:1rem; justify-content:space-between; flex-wrap:wrap; border-bottom:1px solid var(--line); padding:1.25rem 0; }
.manage-list span { color:#61665e; font-size:.9rem; }
#article-editor { max-width:850px; }
fieldset { border:0; margin:0; padding:0; min-width:0; }
label { display:block; font-weight:600; margin:1rem 0; }
input:not([type=file]),textarea { display:block; width:100%; font:inherit; padding:.75rem; border:1px solid var(--line); border-radius:.4rem; background:white; color:var(--ink); margin-top:.4rem; }
textarea { resize:vertical; }
.formatting,.editor-actions,.photo-tools { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; }
.formatting label { margin:0; font-weight:400; }
.formatting input { display:block; max-width:230px; }
.photo-tools { border:1px solid var(--line); border-radius:.5rem; padding:1rem; }
.photo-tools input { display:block; max-width:100%; font:inherit; font-size:.9rem; }
#cover-preview { width:150px; height:110px; object-fit:contain; }
.help { font-size:.9rem; color:#61665e; }
.editor-actions { position:sticky; bottom:0; background:var(--paper); padding:1rem 0; border-top:1px solid var(--line); }
#status { min-height:1.65em; }
dialog { border:1px solid var(--line); border-radius:.75rem; width:min(940px,96vw); max-height:90vh; padding:clamp(1rem,4vw,3rem); background:var(--paper); color:var(--ink); }
dialog::backdrop { background:#17231dbb; }
#close-preview { position:sticky; top:0; }
[hidden] { display:none !important; }
@media(max-width:550px) { main { margin-top:1.5rem; } nav { gap:1rem; } .formatting button { padding:.5rem .75rem; } }
@media print { header,footer,#close-preview { display:none; } main { margin:0; } }
