:root {
      --bg:#F7F2E8;
      --ink:#3D2A0E; --ink-2:#5C4520;
      --accent:#7A5C12; --accent-2:#b8994b;
      --rubric:#7A2020;
      --rule:rgba(61,42,14,.18);
      --surface:rgba(139,105,20,.06);
    }
    [data-theme="night"] {
      --bg:#1A1410;
      --ink:#E8DFC8; --ink-2:#B8A988;
      --accent:#c9a14a; --accent-2:#a8863c;
      --rubric:#e8736e;
      --rule:rgba(232,223,200,.18);
      --surface:rgba(201,162,74,.08);
    }
    *,*::before,*::after { box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    body {
      margin:0; background:var(--bg); color:var(--ink);
      font-family:'EB Garamond',Georgia,'Times New Roman',serif;
      font-size:19px; line-height:1.7;
      -webkit-font-smoothing:antialiased;
      transition:background-color .4s ease,color .4s ease;
    }
    .skip-link {
      position:absolute; left:-9999px; top:0;
      background:var(--accent); color:var(--bg);
      padding:.75rem 1rem; text-decoration:none;
      font-family:'Cinzel',serif; font-size:.8rem;
      letter-spacing:.12em; z-index:1000; border-radius:2px;
    }
    .skip-link:focus { left:.5rem; top:.5rem; outline:2px solid var(--accent); outline-offset:2px; }

    header.page-header {
      max-width:760px; margin:0 auto; padding:1.5rem 1.5rem 0;
      display:flex; justify-content:space-between; align-items:center; gap:1rem;
    }
    .site-mark {
      font-family:'Cinzel',serif; font-weight:500; font-size:.78rem;
      letter-spacing:.22em; color:var(--accent);
      text-decoration:none; text-transform:uppercase;
      transition:color .2s ease;
    }
    .site-mark:hover,.site-mark:focus-visible { color:var(--rubric); outline:none; }

    .theme-toggle {
      background:transparent; border:1px solid var(--rule);
      color:var(--ink-2);
      font-family:'Cinzel',serif; font-size:.7rem; letter-spacing:.18em;
      padding:.55rem .95rem; cursor:pointer; border-radius:2px;
      transition:all .25s ease; text-transform:uppercase; min-height:36px;
    }
    .theme-toggle:hover,.theme-toggle:focus-visible {
      border-color:var(--accent); color:var(--accent); outline:none;
    }
    .theme-toggle:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }

    main { max-width:720px; margin:0 auto; padding:2rem 1.5rem 4rem; }

    .cross-glyph {
      text-align:center; font-size:1.85rem; color:var(--accent);
      margin:1.5rem 0 .75rem; line-height:1; user-select:none;
    }
    .feast-label {
      font-family:'IM Fell English','EB Garamond',serif;
      font-style:italic; text-align:center; color:var(--ink-2);
      font-size:1.05rem; margin:0 0 .35rem; letter-spacing:.02em;
    }
    h1 {
      font-family:'Cinzel',serif; font-weight:600;
      font-size:clamp(1.75rem,4.2vw,2.35rem);
      text-align:center; color:var(--ink);
      margin:0 0 .4rem; line-height:1.18; letter-spacing:.025em;
    }
    .subtitle {
      font-family:'IM Fell English',serif; font-style:italic;
      text-align:center; color:var(--rubric);
      font-size:1.18rem; margin:0 0 2rem; letter-spacing:.01em;
    }
    hr.rule {
      border:0; height:1px;
      background:linear-gradient(to right,transparent,var(--rule),transparent);
      margin:2rem auto; max-width:220px;
    }

    .propers {
      background:var(--surface); border:1px solid var(--rule);
      border-left:3px solid var(--accent);
      padding:1.25rem 1.5rem; margin:2rem 0; border-radius:2px;
    }
    .propers h2 {
      font-family:'Cinzel',serif; font-size:.78rem; letter-spacing:.22em;
      color:var(--accent); text-transform:uppercase;
      margin:0 0 .85rem; font-weight:600;
    }
    .propers dl {
      margin:0; display:grid; grid-template-columns:max-content 1fr;
      gap:.45rem 1.25rem;
    }
    .propers dt {
      font-family:'Cinzel',serif; font-size:.72rem; letter-spacing:.14em;
      text-transform:uppercase; color:var(--ink-2);
      align-self:baseline; padding-top:4px; font-weight:500;
    }
    .propers dd { margin:0; font-size:1rem; color:var(--ink); }

    .collect {
      font-family:'IM Fell English','EB Garamond',serif; font-style:italic;
      font-size:1.12rem; line-height:1.65;
      padding:.5rem 0 .5rem 1.4rem;
      border-left:2px solid var(--rubric);
      margin:2rem 0; color:var(--ink);
    }
    .collect-label {
      display:block; font-family:'Cinzel',serif; font-style:normal;
      font-size:.72rem; letter-spacing:.22em; color:var(--rubric);
      text-transform:uppercase; margin-bottom:.65rem; font-weight:600;
    }

    .pastoral-aside {
      font-family:'IM Fell English','EB Garamond',serif; font-style:italic;
      color:var(--ink-2); font-size:1.02rem; text-align:center;
      margin:1.5rem auto 2rem; padding:0 1rem;
      max-width:580px; line-height:1.6;
    }

    .meditation { margin-top:2rem; }
    .meditation p { margin:0 0 1.35rem; text-align:justify; hyphens:auto; }
    .meditation > p:first-of-type::first-letter {
      font-family:'Cinzel',serif; font-size:3.6rem; float:left;
      line-height:.85; padding:.35rem .55rem 0 0;
      color:var(--accent); font-weight:600;
    }
    em.latin { font-family:'IM Fell English',serif; color:var(--ink-2); font-size:1.02em; }

    .pull-quote {
      font-family:'Cinzel',serif; font-style:normal; font-weight:500;
      font-size:1.25rem; line-height:1.4; text-align:center;
      color:var(--rubric); margin:2.5rem auto;
      max-width:520px; padding:1.25rem 1rem;
      border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
      letter-spacing:.015em;
    }

    .concluding-prayer {
      margin-top:3rem; padding:1.75rem 1.5rem;
      border:1px solid var(--rule); background:var(--surface);
      border-radius:2px; text-align:center;
    }
    .concluding-prayer h2 {
      font-family:'Cinzel',serif; font-size:.78rem; letter-spacing:.22em;
      color:var(--rubric); text-transform:uppercase; text-align:center;
      margin:0 0 1.1rem; font-weight:600;
    }
    .concluding-prayer p {
      font-family:'IM Fell English','EB Garamond',serif; font-style:italic;
      font-size:1.1rem; text-align:center; margin:0;
      line-height:1.7; color:var(--ink);
    }

    footer.page-footer {
      max-width:720px; margin:3.5rem auto 2rem;
      padding:2rem 1.5rem 0; border-top:1px solid var(--rule);
      text-align:center; font-size:.88rem; color:var(--ink-2); line-height:1.6;
    }
    footer.page-footer strong { color:var(--accent); font-weight:500; letter-spacing:.04em; }
    footer.page-footer a {
      color:var(--accent); text-decoration:none;
      border-bottom:1px solid transparent; transition:border-color .2s ease;
    }
    footer.page-footer a:hover, footer.page-footer a:focus-visible {
      border-bottom-color:var(--accent); outline:none;
    }
    .footer-glyph { color:var(--accent); margin:0 .5rem; user-select:none; }

    @media print {
      body { background:white; color:#1a1a1a; font-size:11.5pt; }
      .theme-toggle, .skip-link { display:none; }
      header.page-header { padding-top:0; }
      .site-mark { color:#555; }
      .propers, .collect, .concluding-prayer, .pull-quote {
        background:transparent; page-break-inside:avoid;
      }
      a { color:#1a1a1a; text-decoration:none; }
      .meditation > p:first-of-type::first-letter { color:#555; }
      .cross-glyph, .footer-glyph { color:#555; }
      .pull-quote { color:#555; border-color:#ccc; }
    }
    @media (prefers-reduced-motion: reduce) {
      *,*::before,*::after { transition:none !important; animation-duration:.01ms !important; }
      html { scroll-behavior:auto; }
    }
    @media (max-width:600px) {
      body { font-size:17.5px; }
      header.page-header { padding:1rem 1rem 0; }
      main { padding:1.25rem 1rem 3rem; }
      .propers { padding:1rem 1.1rem; }
      .propers dl { grid-template-columns:1fr; gap:.15rem 0; }
      .propers dt { padding-top:.65rem; }
      .meditation p { text-align:left; }
      .pull-quote { font-size:1.1rem; margin:2rem auto; }
      .meditation > p:first-of-type::first-letter { font-size:3rem; }
    }
  
/* skip-link:begin */
.skip-link{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
.skip-link:focus{position:fixed;top:.75rem;left:.75rem;z-index:1000;width:auto;height:auto;margin:0;padding:.6rem 1rem;overflow:visible;clip:auto;clip-path:none;background:#2a1a08!important;color:#FAF5EB!important;font-family:'Cinzel',Georgia,serif;font-size:.8rem;letter-spacing:.08em;text-decoration:none;border-radius:3px;outline:2px solid #FAF5EB;outline-offset:-4px;box-shadow:0 0 0 2px #2a1a08,0 0 0 4px #FAF5EB}
/* skip-link:end */
