:root{
  --bg:#f6f1e6; --surface:#fcf9f2; --ink:#2f3a2f; --muted:#6b7363; --line:#d9cfb9;
  --sage:#5f7a5c; --sage-d:#46603f; --sage-l:#e3eadc; --gold:#a88a4a;
  --serif:'Cormorant Garamond',Georgia,serif; --body:'Source Serif 4',Georgia,serif;
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:18px/1.65 var(--body)}
a{color:var(--sage-d)} a:focus-visible,button:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.top{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:1rem clamp(1rem,4vw,3rem);border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:5}
.brand{font:600 1.6rem var(--serif);text-decoration:none;color:var(--ink)}
.top nav{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem}.top nav a{text-decoration:none;font-size:1rem;white-space:nowrap}
main{max-width:1080px;margin:0 auto;padding:2rem clamp(1rem,4vw,2rem) 4rem;outline:none}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.15;margin:.2em 0 .4em}
h1{font-size:clamp(2.3rem,5vw,3.4rem)} h2{font-size:1.9rem} h3{font-size:1.4rem}
.eyebrow{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);font-weight:600}
.lede{font-size:1.15rem;color:var(--muted);max-width:42rem}
.hero{padding:2rem 0 1.5rem;border-bottom:1px solid var(--line);margin-bottom:2rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}
.card{background:var(--surface);border:2px solid var(--line);border-radius:6px;padding:1.4rem;display:flex;flex-direction:column;gap:.5rem;text-decoration:none;color:inherit;transition:border-color .2s}
.card:hover{border-color:var(--sage)}
.card p{margin:0;color:var(--muted);font-size:1rem}
.bar{height:8px;background:var(--sage-l);border-radius:4px;overflow:hidden;margin-top:auto}
.bar span{display:block;height:100%;background:var(--sage)}
.small{font-size:.9rem;color:var(--muted)}
.btn{display:inline-flex;align-items:center;gap:.4rem;font:600 1rem var(--body);padding:.6rem 1.1rem;border-radius:4px;border:2px solid var(--sage);background:var(--sage);color:#fff;cursor:pointer;text-decoration:none}
.btn.ghost{background:transparent;color:var(--sage-d)}
.btn:hover{background:var(--sage-d);border-color:var(--sage-d);color:#fff}
.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin:1rem 0}
.week{margin:2.2rem 0}
.week-intro{white-space:pre-line;color:var(--muted);max-width:46rem}
.days{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.6rem;margin-top:1rem}
.day{display:flex;gap:.7rem;align-items:baseline;padding:.7rem .9rem;border:2px solid var(--line);border-radius:4px;background:var(--surface);text-decoration:none;color:inherit;font-size:1rem}
.day b{font-family:var(--serif);font-size:1.3rem;min-width:1.6rem;color:var(--sage-d)}
.day.done{border-color:var(--sage);background:var(--sage-l)}
.day.done::after{content:"✓";margin-left:auto;color:var(--sage-d);font-weight:700}
article.page{background:var(--surface);border:2px solid var(--line);border-radius:6px;padding:clamp(1.2rem,4vw,2.8rem);max-width:780px;margin:0 auto}
.sec{margin:1.6rem 0}
.sec h3{font-family:var(--body);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);margin-bottom:.4rem}
.scripture{border-left:4px solid var(--gold);padding:.3rem 0 .3rem 1.1rem;font:500 1.35rem/1.45 var(--serif);font-style:italic}
.affirm{font:500 1.35rem/1.45 var(--serif);font-style:italic;text-align:center}
.box{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.box div{border:2px solid var(--line);border-radius:4px;padding:1rem}
.box div:last-child{border-color:var(--sage)}
.box small{display:block;font-size:.75rem;letter-spacing:.14em;color:var(--sage);font-weight:600;margin-bottom:.3rem}
textarea{width:100%;min-height:8rem;font:1rem/1.6 var(--body);padding:.8rem;border:2px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);resize:vertical}
label.j{display:block;font-weight:600;margin:1rem 0 .3rem;font-size:1rem}
.saved{font-size:.85rem;color:var(--sage)}
.timer{border:2px solid var(--sage);border-radius:6px;padding:1.2rem;text-align:center;background:var(--sage-l)}
.timer .clock{font:600 3rem var(--serif);font-variant-numeric:tabular-nums}
.pager{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem;flex-wrap:wrap}
.foot{border-top:1px solid var(--line);text-align:center;padding:1.5rem 1rem;color:var(--muted);font-size:.9rem}
.foot p{margin:.3rem 0}
.prayer{font:500 1.5rem/1.6 var(--serif);text-align:center;font-style:italic}
table{border-collapse:collapse;width:100%} td{border-bottom:1px solid var(--line);padding:.6rem;vertical-align:top} td:first-child{font-weight:600;width:7.5rem}
@media (max-width:600px){.box{grid-template-columns:1fr} body{font-size:17px}}
@media print{.top,.foot,.timer,.pager,.no-print{display:none} article.page{border:none}}
.navload{white-space:nowrap;font-size:1rem;color:var(--sage-d);text-decoration:underline;cursor:pointer}
@media (max-width:600px){.navload{margin:0}}
