/* The Holy Rosary (/rosary/) -- Vinci's approved design v2. GENERATED by
   scripts/rosary/build_css.py from his v2src/style.css: always light (no dark
   palette); scoped to html.rz-page / .rz so nothing touches the rest of the site. */
html.rz-page{--bg:#FAF6EE;--surface:#FFFCF7;--ink:#1C1914;--soft:#5C5346;--edge:#D4C4A0;--line:#E6DAC0;
--btn:#7A1F2B;--btn-ink:#FFFFFF;--link:#7A5A14;--bead:#C9A227;--bead-off:#EDE4CF;--bead-ring:#A8946A;--chain:#C9B78C;
--season:#2D6A3E;--season-ink:#F3FAF0;--mantle:#2F4C7A;
--serif:'Fraunces',Georgia,serif;--sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
--r:16px;--tap:44px;color-scheme:light only}
html.rz-page{-webkit-text-size-adjust:100%;background:var(--bg)}
html.rz-page body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;min-height:100vh}
.rz a{color:var(--link);text-underline-offset:3px}
.rz button{font:inherit;color:inherit}
.rz :focus-visible{outline:3px solid var(--link);outline-offset:3px;border-radius:8px}
.rz .eyebrow{font:600 12px/1.2 var(--sans);letter-spacing:1.2px;text-transform:uppercase;color:var(--soft);margin:0}
.rz h1{font:500 36px/1.12 var(--serif);margin:6px 0 8px;color:var(--ink)}
.rz h2{font:500 26px/1.22 var(--serif);margin:0}
.rz .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 28px;border-radius:999px;border:0;background:var(--btn);color:var(--btn-ink);font:600 17px/1 var(--sans);text-decoration:none;cursor:pointer;box-shadow:0 6px 18px rgba(122,31,43,.18)}
.rz .btn.rz-ghost{background:var(--surface);color:var(--ink);border:1.5px solid var(--edge);box-shadow:none}
.rz .btn[aria-disabled=true]{opacity:.45;pointer-events:none}
.rz .linkbtn{background:none;border:0;padding:0 4px;min-height:44px;color:var(--link);font:600 16px/1.2 var(--sans);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.rz .entry{position:relative;max-width:1040px;margin:0 auto;padding:22px 20px 40px;display:grid;justify-items:center;text-align:center}
.rz .arch{position:relative;width:min(272px,72vw);aspect-ratio:3/4;border-radius:999px 999px 22px 22px;overflow:hidden;
 box-shadow:0 0 0 1px rgba(201,162,39,.55),0 0 0 7px var(--surface),0 0 0 8px var(--edge),0 22px 50px rgba(47,76,122,.20);background:#2F4C7A}
.rz .arch img{width:100%;height:100%;object-fit:cover;object-position:50% 6%;display:block}
.rz .glow{position:absolute;inset:-8% -30% auto;height:520px;z-index:-1;pointer-events:none;
 background:radial-gradient(closest-side,rgba(201,162,39,.20),rgba(201,162,39,0) 70%)}
.rz .entry .txt{margin-top:26px;max-width:460px}
.rz .entry .rz-lede{font:400 18px/1.5 var(--serif);color:var(--soft);margin:0 0 22px;font-style:italic}
.rz .entry .btn{width:min(320px,100%)}
.rz .today{margin:16px 0 0;font-size:16px;color:var(--soft);display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:2px 6px}
.rz .today b{color:var(--ink);font-weight:600}
.rz .resume{display:block;margin-top:6px}
.rz .minor{margin-top:22px;padding-top:14px;border-top:1px solid var(--line);display:flex;justify-content:center;gap:4px 22px;flex-wrap:wrap;font-size:16px}
.rz .minor a{display:inline-flex;align-items:center;min-height:44px}
.rz .stage{position:relative;isolation:isolate;min-height:calc(100vh - 82px)}
.rz .backdrop{position:absolute;left:50%;transform:translateX(-50%);width:min(100%,900px);top:0;height:440px;z-index:-1;background-size:cover;background-position:50% 18%;opacity:.42;
 -webkit-mask-image:radial-gradient(ellipse 50% 100% at 50% 0%,#000 0%,rgba(0,0,0,.45) 55%,transparent 100%);mask-image:radial-gradient(ellipse 50% 100% at 50% 0%,#000 0%,rgba(0,0,0,.45) 55%,transparent 100%)}
.rz .pray{max-width:1160px;margin:0 auto;padding:10px max(16px,env(safe-area-inset-left)) 0}
.rz .pbar{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rz .pbar .exit{min-height:44px;min-width:44px;display:inline-flex;align-items:center;font-weight:600;color:var(--ink);text-decoration:none;background:rgba(255,252,247,.85);border:1px solid var(--line);border-radius:999px;padding:0 14px;font-size:15px}
.rz .pbar .setname{font:600 13px/1.2 var(--sans);letter-spacing:1px;text-transform:uppercase;color:var(--ink);background:rgba(255,252,247,.85);border-radius:999px;padding:7px 12px}
.rz .prog{display:grid;grid-template-columns:104px 1fr;gap:12px;align-items:center;margin:10px 0 12px;background:rgba(255,252,247,.94);border:1px solid var(--line);border-radius:var(--r);padding:8px 12px 8px 6px}
.rz .mapbtn{border:0;background:none;padding:0;cursor:pointer;display:block;border-radius:12px;min-height:44px}
.rz .mapbtn svg{display:block;width:104px;height:auto}
.rz .mapbtn small{display:block;font:600 11px/1 var(--sans);color:var(--link);letter-spacing:.4px;margin-top:2px;text-align:center}
.rz .where .eyebrow{color:var(--link)}
.rz .where .mname{font:italic 400 18px/1.3 var(--serif);color:var(--ink);margin:4px 0 6px}
.rz .where .count{font:600 14px/1.2 var(--sans);color:var(--soft);margin:0 0 4px}
.rz .drow{display:block;width:100%;max-width:240px;height:30px;overflow:visible}
.rz .pgrid{display:grid;grid-template-columns:1fr;gap:24px;align-items:start}
.rz .side{display:none}
.rz .card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:24px 20px 20px;box-shadow:0 10px 30px rgba(90,70,20,.07)}
.rz .loc{font:600 12px/1.3 var(--sans);letter-spacing:1.1px;text-transform:uppercase;color:var(--link);margin:0 0 6px}
.rz .ptitle{font:600 22px/1.25 var(--serif);margin:0 0 14px;color:var(--ink)}
.rz .ptitle .n{font:600 14px/1 var(--sans);color:var(--soft);margin-left:8px;letter-spacing:.2px}
.rz .ptext p{font:400 21px/1.6 var(--serif);margin:0 0 14px;color:var(--ink)}
.rz .ptext.long p{font-size:19px;line-height:1.58}
.rz .ptext p.vr{font-size:19px;color:var(--soft)}
.rz .ptext p.vr b{color:var(--ink)}
.rz .navbar{position:sticky;bottom:0;z-index:10;background:linear-gradient(rgba(250,246,238,0),var(--bg) 30%);padding:18px 0 max(14px,env(safe-area-inset-bottom));margin-top:6px}
.rz .nav{display:grid;grid-template-columns:1fr 1.6fr;gap:10px;max-width:640px;margin:0 auto}
.rz .nav .btn{width:100%;padding:0 12px}
.rz .mys{text-align:center;padding:26px 20px 24px}
.rz .mys .arch{width:min(150px,40vw);margin:14px auto 16px}
.rz .mys .ord{font:500 20px/1.3 var(--serif);color:var(--soft);margin:6px 0 4px;font-style:italic}
.rz .mys .mtitle{font:500 30px/1.18 var(--serif);margin:0 0 12px;color:var(--ink)}
.rz .mys .pause{font-size:16px;color:var(--soft);max-width:30ch;margin:0 auto}
.rz .rz-done{text-align:center;padding:30px 20px 24px}
.rz .rz-done .arch{width:min(170px,46vw);margin:0 auto 18px}
.rz .rz-done h2{font-size:32px;margin:0 0 6px}
.rz .rz-done .sub{color:var(--soft);margin:0 0 20px;font:italic 400 19px/1.4 var(--serif)}
.rz .rz-done .acts{display:flex;flex-direction:column;align-items:center;gap:6px}
.rz .rz-done details{text-align:left}
.rz .bead{transition:fill .25s,stroke .25s}
.rz .rsvg{display:block;width:100%;height:auto;touch-action:manipulation;cursor:pointer}
.rz .scrim{position:fixed;inset:0;background:rgba(58,50,32,.38);z-index:40;display:flex;align-items:flex-end;justify-content:center}
.rz .sheet{background:var(--surface);width:100%;max-width:560px;border-radius:22px 22px 0 0;padding:10px 20px max(20px,env(safe-area-inset-bottom));max-height:92vh;overflow:auto;box-shadow:0 -10px 40px rgba(60,40,10,.2)}
.rz .sheet .grab{width:44px;height:5px;border-radius:3px;background:var(--edge);margin:0 auto 12px}
.rz .sheet h2{font-size:24px;margin:0 0 4px}
.rz .sheet .shd{display:flex;justify-content:space-between;align-items:center;gap:8px}
.rz .x{width:44px;height:44px;border-radius:50%;border:1px solid var(--edge);background:var(--bg);font-size:22px;line-height:1;cursor:pointer}
.rz .lbl{font:600 12px/1 var(--sans);letter-spacing:1.1px;text-transform:uppercase;color:var(--soft);margin:18px 0 8px}
.rz .days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.rz .day{min-height:48px;border:1px solid var(--edge);border-radius:12px;background:var(--bg);font:600 14px/1.1 var(--sans);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0}
.rz .day small{font:500 10px/1 var(--sans);color:var(--soft);margin-top:3px;letter-spacing:.3px}
.rz .day[aria-pressed=true]{background:var(--ink);color:#FFFCF7;border-color:var(--ink)}
.rz .day[aria-pressed=true] small{color:#E9DFC8}
.rz .sets{display:grid;gap:8px}
.rz .set{display:flex;align-items:center;gap:12px;min-height:56px;border:1px solid var(--edge);border-radius:14px;background:var(--bg);padding:8px 14px;text-align:left;cursor:pointer;width:100%}
.rz .set .rd{width:22px;height:22px;border-radius:50%;border:2px solid var(--bead-ring);flex:none;display:grid;place-items:center}
.rz .set[aria-checked=true]{border-color:var(--link);background:#FFF8E6}
.rz .set[aria-checked=true] .rd{border-color:var(--link)}
.rz .set[aria-checked=true] .rd::after{content:'';width:10px;height:10px;border-radius:50%;background:var(--link)}
.rz .set b{font:600 18px/1.25 var(--serif);display:block}
.rz .set small{font-size:14px;color:var(--soft)}
.rz .rz-opt{display:flex;gap:12px;align-items:center;min-height:48px;font-size:16px;color:var(--ink);margin-top:10px}
.rz .rz-opt input{width:22px;height:22px;accent-color:var(--btn);flex:none}
.rz .sheet .btn{width:100%;margin-top:14px}
.rz .jump{display:grid;grid-template-columns:auto repeat(5,1fr) auto;gap:4px;margin-top:4px}
.rz .jump button{min-height:44px;min-width:36px;padding:0 6px;font-size:13px!important;border:1px solid var(--edge);border-radius:12px;background:var(--bg);font:600 14px/1.1 var(--sans);cursor:pointer}
.rz .jump button[aria-current=true]{background:#FFF8E6;border-color:var(--link);color:var(--link)}
.rz .sheet .rsvg{max-width:300px;margin:4px auto 0}
.rz .hint{font-size:14px;color:var(--soft);text-align:center;margin:8px 0 0}
.rz .startover{display:block;margin:16px auto 0;font-size:15px;color:var(--soft)}
.rz .read{max-width:720px;margin:0 auto;padding:14px 20px 56px}
.rz .read .back{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:var(--ink);text-decoration:none}
.rz .read .rhead{display:flex;gap:16px;align-items:center;margin:6px 0 18px}
.rz .read .rhead img{width:76px;height:100px;object-fit:cover;object-position:50% 8%;border-radius:999px 999px 10px 10px;box-shadow:0 0 0 3px var(--surface),0 0 0 4px var(--edge);flex:none}
.rz .read .rhead h1{font-size:32px;margin:4px 0 2px}
.rz .read section{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 20px 8px;margin:0 0 14px}
.rz .read h2{font:600 13px/1.2 var(--sans);letter-spacing:1.1px;text-transform:uppercase;color:var(--link);margin:4px 0 4px}
.rz .read h3{font:600 20px/1.3 var(--serif);margin:14px 0 6px}
.rz .read h3 .n{font:600 13px/1 var(--sans);color:var(--soft);margin-left:6px}
.rz .read .prayer p{font:400 18px/1.65 var(--serif);margin:0 0 10px}
.rz .read .prayer p.vr{color:var(--soft)}
.rz .rub{font-size:15px;color:var(--soft);margin:0 0 10px}
.rz .mlist{list-style:none;margin:6px 0 12px;padding:0;counter-reset:m}
.rz .mlist li{counter-increment:m;display:flex;gap:12px;align-items:baseline;padding:8px 0;border-top:1px solid var(--line);font:400 18px/1.4 var(--serif)}
.rz .mlist li::before{content:counter(m);font:600 13px/26px var(--sans);width:26px;height:26px;border-radius:50%;border:1px solid var(--edge);text-align:center;flex:none;color:var(--soft)}
.rz details{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);margin:10px 0}
.rz summary{min-height:52px;padding:12px 18px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px;font:600 18px/1.3 var(--serif)}
.rz summary::-webkit-details-marker{display:none}
.rz summary::after{content:'';width:9px;height:9px;border-right:2px solid var(--soft);border-bottom:2px solid var(--soft);transform:rotate(45deg);flex:none}
.rz details[open]>summary::after{transform:rotate(-135deg)}
.rz .dbody{padding:0 18px 14px}
.rz .dbody p{font:400 17px/1.6 var(--serif);margin:0 0 10px}
.rz .src{font:italic 15px/1.4 var(--serif)!important;color:var(--soft)}
.rz .litany{padding-left:20px;margin:0 0 10px}
.rz .litany li{font-family:var(--serif);margin:2px 0}
.rz .rubric{font:600 13px/1.4 var(--sans)!important;color:var(--soft);text-transform:uppercase;letter-spacing:.8px;margin:12px 0 4px!important}
@media(min-width:900px){
 .rz .entry{grid-template-columns:400px 1fr;gap:64px;text-align:left;justify-items:start;align-items:center;padding:44px 40px 40px}
 .rz .entry .arch{width:400px}
 .rz .entry .txt{margin-top:0;max-width:440px}
 .rz .glow{inset:-60px auto auto -120px;width:700px;height:700px}
 .rz h1{font-size:52px}
 .rz .entry .rz-lede{font-size:20px}
 .rz .today, .rz .minor{justify-content:flex-start}
 .rz .prog{display:none}
 .rz .pgrid{grid-template-columns:372px 1fr;gap:28px}
 .rz .side{display:block;position:sticky;top:72px;background:rgba(255,252,247,.94);border:1px solid var(--line);border-radius:20px;padding:14px 18px 12px}
 .rz .side .rsvg{max-width:262px;margin:0 auto}
 .rz .side .wh{text-align:center;margin:0 0 4px}
 .rz .side .wh .mname{font:italic 400 17px/1.3 var(--serif);margin:3px 0 0}
 .rz .card{padding:34px 40px 26px;min-height:470px}
 .rz .ptext p{font-size:25px}
 .rz .ptext.long p{font-size:21px}
 .rz .mys .arch{width:200px}
 .rz .pray{padding-top:14px}
 .rz .navbar{background:none;padding:16px 0 24px}
 .rz .nav{max-width:none}
 .rz .scrim{align-items:center}
 .rz .sheet{border-radius:22px}
 .rz .read{padding-top:22px}
}
@media(max-width:380px){
 .rz .ptext p{font-size:20px}
 .rz h1{font-size:32px}
}
.rz .bd{fill:var(--bead-off);stroke:var(--bead-ring);stroke-width:1}
.rz .bd.on{fill:var(--bead);stroke:#9C7B16}
.rz .bd.now{stroke:var(--ink);stroke-width:2.6}
.rz .gm{fill:var(--chain);stroke:none}
.rz .gm.on{fill:var(--bead)}
.rz .gm.now{fill:var(--bead);stroke:var(--ink);stroke-width:2.2}
.rz .halo{fill:rgba(201,162,39,.28);stroke:none}
.rz .chainl{fill:none;stroke:var(--chain);stroke-width:1.6}
.rz .mini .chainl{stroke-width:3}
.rz .mini .bd{stroke-width:1.4}
.rz .mini .bd.now{stroke-width:3.6}
@media(max-width:520px){
 .rz .read .rhead h1{font-size:28px}
 .rz .read .today{font-size:15px}
 .rz .read .rhead img{width:68px;height:90px}
}

/* ===== on the site (not in the mockup) ===== */
/* the site's sticky header and footer on this page; flat cream, no orbs or rays */
html.rz-page body{padding-top:0}
html.rz-page body::before, html.rz-page .orb{display:none}
html.rz-page .wrap{max-width:1160px}
html.rz-page .site-head{position:sticky;top:0;z-index:30;margin:0;padding:calc(6px + env(safe-area-inset-top)) 0 6px;
 background:rgba(255,252,247,.96);box-shadow:0 0 0 100vmax rgba(255,252,247,.96),0 1px 0 100vmax var(--line);clip-path:inset(0 -100vmax -1px -100vmax)}
.rz{margin:0 -16px}
@media(min-width:900px){.rz{margin:0}}
/* read aloud (pre-made files; never autoplays) */
.rz .listen{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 12px;max-width:640px;margin:0 auto 10px}
.rz .listen[hidden]{display:none}
.rz .listen .btn{min-height:44px;padding:0 20px;font-size:16px;box-shadow:none}
.rz .listen .btn svg{width:18px;height:18px}
.rz .listen small{font-size:14px;color:var(--soft)}
/* with the Listen row, the bottom bar is solid behind it so prayer text never shows through */
.rz .navbar:has(.listen){background:linear-gradient(rgba(250,246,238,0),var(--bg) 22px)}
/* Litany screens: a list of short lines, set closer together */
.rz .litany-text p{font-size:20px;line-height:1.4;margin:0 0 8px}
@media(min-width:900px){.rz .litany-text p{font-size:22px}}
/* the jump row fits 44px buttons on a 375px phone */
.rz .jump{grid-template-columns:repeat(5,1fr);gap:6px}
.rz .jump button{min-width:44px;padding:0 4px}
/* English | Español at the top of the page (Savio, 2026-10-08) */
html.rz-page .rz-lang{display:flex;justify-content:flex-end;align-items:center;gap:2px;margin:4px 0 0;font:500 16px/1.2 var(--sans);color:var(--soft)}
html.rz-page .rz-lang button{background:none;border:0;min-height:44px;min-width:44px;padding:0 8px;font:inherit;color:var(--link);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
html.rz-page .rz-lang button[aria-pressed=true]{color:var(--ink);font-weight:600;text-decoration:none;cursor:default}
html.rz-page .rz-lang button:focus-visible{outline:3px solid var(--link);outline-offset:2px;border-radius:8px}
