:root{--bg:#faf8f4;--card:#fff;--ink:#1f1d1a;--muted:#6b655c;--line:#e6e1d8;--accent:#5a3e1b;--accent-soft:#f1e9dc;--sample:#9a3412;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#171512;--card:#201d19;--ink:#ece7df;--muted:#a39b8f;--line:#36312a;--accent:#d9b37a;--accent-soft:#2e271e;--sample:#fb923c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font:16px/1.55 var(--sans);margin:0}a{color:var(--accent)}.app{max-width:44rem;margin:0 auto;padding:0 16px 48px}nav.top{justify-content:space-between;align-items:center;padding:16px 0;display:flex}nav.top .brand{font:700 1.15rem var(--serif);color:var(--ink);text-decoration:none}header.date{text-align:center;grid-template-columns:2.5rem 1fr 2.5rem;align-items:center;margin:8px 0 16px;display:grid}header.date h1{font:600 1.5rem/1.25 var(--serif);margin:0}.step{padding:8px;font-size:1.75rem;line-height:1;text-decoration:none}.commemoration{text-align:center;font-family:var(--serif);margin:0 0 16px}.label{font:600 .7rem var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-right:6px}.part{background:var(--card);border:1px solid var(--line);border-radius:12px;margin:12px 0;padding:16px 18px}.part h2{font:600 .75rem var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px}.part h3{font:600 1.15rem/1.3 var(--serif);margin:0 0 4px}.line+.line{border-top:1px dashed var(--line);margin-top:12px;padding-top:12px}.ref{font:600 1.1rem var(--serif);margin:0}.links{flex-wrap:wrap;gap:6px;margin:8px 0 0;display:flex}.links a{background:var(--accent-soft);border-radius:999px;padding:3px 10px;font-size:.85rem;text-decoration:none}.byline{color:var(--muted);margin:0 0 8px;font-size:.9rem}.tag{border:1px solid var(--line);border-radius:999px;margin-left:8px;padding:1px 8px;font-size:.75rem}.text p,.stanzas{font:1.05rem/1.65 var(--serif)}.text p{margin:0 0 10px}.stanzas{padding-left:1.5rem}.stanzas li{margin-bottom:10px}.stanzas span{display:block}.note,.muted{color:var(--muted)}.note{margin:8px 0 0;font-size:.9rem}.source{color:var(--muted);margin:10px 0 0;font-size:.8rem}.sample{color:var(--sample);margin-right:8px;font-weight:600}.empty{text-align:center;color:var(--muted);padding:32px 0}.small{font-size:.85rem}.settings h1{font:600 1.5rem var(--serif)}.option{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:12px 0;display:flex}.option span{flex-direction:column;display:flex}footer{justify-content:center;gap:16px;margin-top:32px;font-size:.85rem;display:flex}.nav-links{gap:12px;display:flex}.church-day{font:italic 1rem var(--serif);color:var(--accent);margin:4px 0 0}.lectionary{text-align:center;color:var(--muted);margin:0 0 8px;font-size:.8rem}.reading+.reading{border-top:1px dashed var(--line);margin-top:16px;padding-top:16px}.reading h3 .label{vertical-align:middle}.scripture{font:1.05rem/1.7 var(--serif);margin:0}.scripture sup{font:600 .65rem var(--sans);color:var(--muted);margin-right:2px}.scripture .chapter{font:600 .75rem var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:10px 0 4px;display:block}.part .links,.unit+.unit{margin-top:12px}.unit-head{font:600 1rem var(--serif);margin:0}.unit-ref{color:var(--accent);margin-right:8px}.unit-text{font:1.05rem/1.65 var(--serif);margin:4px 0 0}.about h1{font:600 1.5rem var(--serif)}.about h2{font:600 1.1rem var(--serif);margin-top:28px}.credits dt{margin-top:12px;font-weight:600}.credits dd{color:var(--muted);margin:4px 0 0}footer{flex-wrap:wrap}.more{border-top:1px dashed var(--line);margin-top:14px;padding-top:10px}.more summary{cursor:pointer;color:var(--accent);font-size:.9rem}.more[open] summary{margin-bottom:8px}.more .reading h3{display:none}.propers-title{font:italic .95rem var(--serif);color:var(--muted);margin:0 0 8px}.lectionary{margin-top:24px}.about ol,.about ul{padding-left:1.25rem}.about li{margin-bottom:6px}.nav-links{font-size:.95rem}.to-calendar{color:inherit;border-radius:10px;padding:4px 6px;text-decoration:none;display:block}.to-calendar:hover,.to-calendar:focus-visible{background:var(--accent-soft)}.cal-hint{color:var(--accent);border:1px solid var(--line);border-radius:999px;margin-top:6px;padding:1px 10px;font-size:.75rem;display:inline-block}.calendar .week{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--season,var(--line));border-radius:12px;margin:12px 0;overflow:hidden}.calendar .week h2{font:600 1rem/1.3 var(--serif);margin:0;padding:12px 14px 8px}.calendar .season{font:600 .7rem var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:2px;display:block}.calendar .days{margin:0;padding:0;list-style:none}.calendar .days a{border-top:1px solid var(--line);color:inherit;grid-template-columns:3.25rem 1fr;gap:8px;padding:8px 14px;text-decoration:none;display:grid}.calendar .days a:hover{background:var(--accent-soft)}.calendar .num{align-items:baseline;gap:6px;display:flex}.calendar .num span{color:var(--muted);font-size:.75rem}.calendar .what{flex-direction:column;min-width:0;font-size:.9rem;display:flex}.calendar .sunday .name{font:600 .95rem var(--serif)}.calendar .name{font-family:var(--serif)}.calendar .holy{color:var(--accent)}.calendar .person{color:var(--muted)}.calendar .today a{background:var(--accent-soft)}.calendar .today .num strong{color:var(--accent)}.season-advent{--season:#5b4a8b}.season-christmas,.season-easter{--season:#c9a227}.season-epiphany,.season-trinity{--season:#4f7a52}.season-pre-lent,.season-lent,.season-holy-week{--season:#7a3b3b}.season-whitsun{--season:#b5482c}.app-banner{border:1px solid var(--line);background:var(--card);border-radius:12px;align-items:center;gap:.75rem;margin:0 0 1rem;padding:.6rem .75rem;font-size:.85rem;line-height:1.3;display:flex}.app-banner img{border-radius:8px;flex:none}.app-banner span{color:var(--muted);flex:auto}.app-banner strong{color:var(--ink)}.app-banner-get{background:var(--accent);color:var(--bg);border-radius:999px;flex:none;padding:.3rem .9rem;font-weight:600;text-decoration:none}.app-banner button{color:var(--muted);cursor:pointer;background:0 0;border:0;flex:none;font-size:1.3rem;line-height:1}
