@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/assets/eb-garamond-latin-wght-normal-CRpggXlh.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:EB Garamond Variable;font-style:italic;font-display:swap;font-weight:400 800;src:url(/assets/eb-garamond-latin-wght-italic-AvGrCMCN.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/assets/eb-garamond-latin-ext-wght-normal-B6IpcvL2.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--bg:#faf6ef;--bg-sunk:#f2ece1;--surface:#fffdf9;--surface-raised:#fff;--border:#e4dacb;--border-strong:#d2c4ae;--ink:#1d2230;--ink-soft:#4a5160;--ink-muted:#767e8e;--ink-inverse:#fdfbf7;--accent:#2d4a8a;--accent-deep:#1b2a4a;--accent-soft:#e8edf7;--accent-ink:#fff;--gold:#b4892c;--gold-soft:#f6ecd4;--art-fill:var(--accent-deep);--art-accent:var(--gold);--art-line:var(--accent);--art-inlay:var(--surface);--art-ray:var(--gold);--font-prayer:"EB Garamond Variable", "EB Garamond", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-ui:"Inter Variable", Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--step--1:clamp(.82rem, .8rem + .1vw, .88rem);--step-0:clamp(1rem, .97rem + .15vw, 1.07rem);--step-1:clamp(1.2rem, 1.12rem + .4vw, 1.4rem);--step-2:clamp(1.45rem, 1.3rem + .75vw, 1.85rem);--step-3:clamp(1.8rem, 1.5rem + 1.4vw, 2.6rem);--step-4:clamp(2.2rem, 1.7rem + 2.4vw, 3.4rem);--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--sp-8:4rem;--r-sm:8px;--r-md:14px;--r-lg:22px;--r-pill:999px;--shadow-sm:0 1px 2px #1d22300f, 0 1px 3px #1d22300a;--shadow-md:0 4px 12px #1d223012, 0 2px 4px #1d22300a;--shadow-lg:0 18px 40px #1d22301f, 0 4px 12px #1d22300f;--measure:34rem;--ease:cubic-bezier(.22, .61, .36, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-accent=marian]{--accent:#2d4a8a;--accent-deep:#1b2a4a;--accent-soft:#e8edf7;--gold:#b4892c;--gold-soft:#f6ecd4}:root[data-accent=flame]{--accent:#a8321f;--accent-deep:#6a1c10;--accent-soft:#fbeae6;--gold:#c8841f;--gold-soft:#fbeed6}:root[data-accent=sacred]{--accent:#8c1d2a;--accent-deep:#5a0f1a;--accent-soft:#fae9eb;--gold:#b4892c;--gold-soft:#f6ecd4}:root[data-accent=advent]{--accent:#4a2d6b;--accent-deep:#2e1a45;--accent-soft:#efe9f6;--gold:#a8842f;--gold-soft:#f4ecd8}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d1220;--bg-sunk:#080c17;--surface:#151c2d;--surface-raised:#1c2438;--border:#273048;--border-strong:#38435f;--ink:#e9e5dc;--ink-soft:#b3b9c8;--ink-muted:#828b9e;--ink-inverse:#0d1220;--accent:#8fa9e0;--accent-deep:#c3d2f0;--accent-soft:#1b2339;--accent-ink:#0d1220;--gold:#e0bc6a;--gold-soft:#2a2415;--art-fill:var(--accent-deep);--art-inlay:var(--surface);--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 14px #00000073;--shadow-lg:0 20px 44px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root:not([data-theme=light])[data-accent=flame]{--accent:#e8927c;--accent-deep:#f4bfae;--accent-soft:#2a1a16;--gold:#e3ab5c}:root:not([data-theme=light])[data-accent=sacred]{--accent:#dd8f9b;--accent-deep:#f0c2c9;--accent-soft:#2a171b}:root:not([data-theme=light])[data-accent=advent]{--accent:#b79ad8;--accent-deep:#d8c7ec;--accent-soft:#221a2e}}:root[data-theme=dark]{--bg:#0d1220;--bg-sunk:#080c17;--surface:#151c2d;--surface-raised:#1c2438;--border:#273048;--border-strong:#38435f;--ink:#e9e5dc;--ink-soft:#b3b9c8;--ink-muted:#828b9e;--ink-inverse:#0d1220;--accent:#8fa9e0;--accent-deep:#c3d2f0;--accent-soft:#1b2339;--accent-ink:#0d1220;--gold:#e0bc6a;--gold-soft:#2a2415;--art-fill:var(--accent-deep);--art-inlay:var(--surface);--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 14px #00000073;--shadow-lg:0 20px 44px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=dark][data-accent=flame]{--accent:#e8927c;--accent-deep:#f4bfae;--accent-soft:#2a1a16;--gold:#e3ab5c}:root[data-theme=dark][data-accent=sacred]{--accent:#dd8f9b;--accent-deep:#f0c2c9;--accent-soft:#2a171b}:root[data-theme=dark][data-accent=advent]{--accent:#b79ad8;--accent-deep:#d8c7ec;--accent-soft:#221a2e}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:var(--bg);min-height:100dvh;color:var(--ink);font-family:var(--font-ui);font-size:var(--step-0);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background-color .4s var(--ease), color .4s var(--ease);line-height:1.6}img,svg{max-width:100%;display:block}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent);text-underline-offset:.2em}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-sm)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}h1,h2,h3{font-family:var(--font-prayer);letter-spacing:-.012em;text-wrap:balance;font-weight:600;line-height:1.15}.eyebrow{font-family:var(--font-ui);font-size:var(--step--1);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);font-weight:600}.app{flex-direction:column;min-height:100dvh;display:flex}.page{width:100%;padding-inline:var(--sp-4);padding-bottom:var(--sp-8);flex:1}.wrap{width:100%;max-width:62rem;margin-inline:auto}.prose{max-width:var(--measure);margin-inline:auto}.topbar{z-index:20;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);padding-top:max(var(--sp-3), env(safe-area-inset-top));background:color-mix(in oklab, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.4);backdrop-filter:blur(14px)saturate(1.4);border-bottom:1px solid color-mix(in oklab, var(--border) 60%, transparent);display:flex;position:sticky;top:0}.topbar__brand{align-items:center;gap:var(--sp-2);font-family:var(--font-prayer);font-size:var(--step-1);color:var(--ink);letter-spacing:-.01em;margin-inline-end:auto;font-weight:600;text-decoration:none;display:flex}.topbar__mark{width:1.1em;color:var(--accent)}.topbar__mark .art-fill{fill:currentColor}.btn{justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--r-pill);background:var(--accent);color:var(--accent-ink);font-size:var(--step-0);letter-spacing:-.005em;transition:transform .18s var(--ease), box-shadow .18s var(--ease), background-color .18s var(--ease);box-shadow:var(--shadow-sm);border:1px solid #0000;padding:.7em 1.3em;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn--ghost{color:var(--ink-soft);border-color:var(--border-strong);box-shadow:none;background:0 0}.btn--ghost:hover{background:var(--surface);color:var(--ink)}.btn--quiet{color:var(--ink-muted);box-shadow:none;background:0 0;border-color:#0000;padding:.5em .8em}.btn--quiet:hover{background:var(--bg-sunk);color:var(--ink);box-shadow:none;transform:none}.btn--icon{aspect-ratio:1;border-radius:var(--r-pill);padding:.55em}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}:where(.art){width:100%}.art{height:auto;overflow:visible}.art .art-fill{fill:var(--art-fill)}.art .art-accent-fill{fill:var(--art-accent)}.art .art-inlay{fill:var(--art-inlay);stroke:none}.art .art-line{fill:none;stroke:var(--art-line);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;opacity:.55}.art .art-rays line{stroke:var(--art-ray);stroke-width:2px;stroke-linecap:round;opacity:.32}.art .art-thorns ellipse{stroke:var(--art-accent);stroke-width:2px;stroke-dasharray:1 9;opacity:.75}.art .art-halo circle{stroke:var(--art-accent);stroke-width:1.6px;opacity:.5}.art .art-stars path{fill:var(--art-accent)}.ornament{width:9rem;margin:var(--sp-5) auto;color:var(--gold);opacity:.6}.ornament g{fill:currentColor;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round}.arch{width:100%;height:100%;color:var(--accent);pointer-events:none;position:absolute;inset:0}.hero{gap:var(--sp-5);padding:var(--sp-7) var(--sp-4) var(--sp-6);text-align:center;display:grid;position:relative;overflow:hidden}.hero__art{width:min(9rem,34vw);margin-inline:auto}.hero h1{font-size:var(--step-4);max-width:24ch;margin-inline:auto}.hero__lede{max-width:44ch;color:var(--ink-soft);font-size:var(--step-1);font-family:var(--font-prayer);margin-inline:auto;line-height:1.5}.card-grid{gap:var(--sp-4);margin-top:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));display:grid}.novena-card{gap:var(--sp-4);padding:var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);text-align:start;color:inherit;box-shadow:var(--shadow-sm);transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s var(--ease);grid-template-columns:auto 1fr;align-items:start;text-decoration:none;display:grid;position:relative}.novena-card:before{content:"";border-radius:inherit;background:linear-gradient(160deg, color-mix(in oklab, var(--accent) 7%, transparent), transparent 60%);opacity:0;transition:opacity .25s var(--ease);pointer-events:none;position:absolute;inset:0}.novena-card:hover{box-shadow:var(--shadow-lg);border-color:color-mix(in oklab, var(--accent) 35%, var(--border));transform:translateY(-3px)}.novena-card:hover:before{opacity:1}.novena-card__art{width:3.6rem}.novena-card__title{font-size:var(--step-2);margin-bottom:var(--sp-1)}.novena-card__sub{color:var(--ink-muted);font-size:var(--step--1)}.novena-card__meta{align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);font-size:var(--step--1);color:var(--ink-soft);display:flex}.ring{flex:none;width:2.5rem;height:2.5rem}.ring__track{fill:none;stroke:var(--border);stroke-width:3px}.ring__value{fill:none;stroke:var(--accent);stroke-width:3px;stroke-linecap:round;transform-origin:50%;transition:stroke-dashoffset .5s var(--ease);transform:rotate(-90deg)}.ring__label{font-family:var(--font-ui);fill:var(--ink-soft);text-anchor:middle;font-size:9px;font-weight:700}.novena-header{padding:var(--sp-7) var(--sp-4) var(--sp-6);text-align:center;position:relative;overflow:hidden}.novena-header__art{width:min(8rem,30vw);margin:0 auto var(--sp-4);position:relative}.novena-header h1{font-size:var(--step-3);position:relative}.novena-header__sub{color:var(--gold);font-family:var(--font-prayer);font-size:var(--step-1);margin-top:var(--sp-2);font-style:italic;position:relative}.about p{font-family:var(--font-prayer);font-size:var(--step-1);color:var(--ink-soft);line-height:1.68}.about p+p{margin-top:var(--sp-4)}.callout{gap:var(--sp-2);padding:var(--sp-4) var(--sp-5);margin-top:var(--sp-5);background:var(--accent-soft);border-radius:var(--r-md);border-inline-start:3px solid var(--accent);font-size:var(--step--1);color:var(--ink-soft);display:grid}.callout strong{color:var(--ink)}.day-grid{gap:var(--sp-3);margin-top:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr));display:grid}.day-chip{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);text-align:start;color:inherit;transition:border-color .18s var(--ease), background-color .18s var(--ease), transform .18s var(--ease);grid-template-columns:auto 1fr auto;text-decoration:none;display:grid}.day-chip:hover{border-color:var(--accent);transform:translate(2px)}.day-chip__n{border-radius:var(--r-pill);background:var(--bg-sunk);width:2.1rem;height:2.1rem;color:var(--ink-muted);font-size:var(--step--1);font-variant-numeric:tabular-nums;place-items:center;font-weight:700;display:grid}.day-chip--done .day-chip__n{background:var(--accent);color:var(--accent-ink)}.day-chip--next{border-color:var(--accent);background:var(--accent-soft)}.day-chip__theme{font-family:var(--font-prayer);font-size:var(--step-0);line-height:1.35}.day-chip__tick{width:1.1rem;color:var(--accent)}.reader{gap:var(--sp-5);padding-top:var(--sp-5);display:grid}.reader__head{text-align:center}.reader__day{font-size:var(--step-3)}.reader__theme{font-family:var(--font-prayer);font-style:italic;font-size:var(--step-1);color:var(--gold);margin-top:var(--sp-2)}.rail{margin-top:var(--sp-4);justify-content:center;gap:4px;display:flex}.rail__tick{border-radius:var(--r-pill);background:var(--border);max-width:2.5rem;height:3px;transition:background-color .3s var(--ease);flex:1}.rail__tick--on{background:var(--accent)}.step{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5) clamp(var(--sp-4), 4vw, var(--sp-6));box-shadow:var(--shadow-sm)}.step--opening,.step--closing{box-shadow:none;background:0 0;border-style:dashed}.step__heading{font-size:var(--step-2);margin-bottom:var(--sp-2)}.step__note{font-size:var(--step--1);color:var(--ink-muted);margin-bottom:var(--sp-4)}.step__body p{font-family:var(--font-prayer);font-size:var(--step-1);line-height:1.7}.step__body p+p{margin-top:var(--sp-4)}.rubric{align-items:center;gap:var(--sp-3);font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);justify-content:center;font-weight:600;display:flex}.rubric__mark{width:1rem;color:var(--gold)}.rubric__mark .art-fill{fill:currentColor}.epigraph{margin:0 0 var(--sp-5);padding:var(--sp-3) 0 var(--sp-3) var(--sp-5);border-inline-start:2px solid var(--gold)}.epigraph blockquote{font-family:var(--font-prayer);font-size:var(--step-1);color:var(--ink);text-wrap:pretty;font-style:italic;line-height:1.5}.epigraph blockquote:before{content:open-quote}.epigraph blockquote:after{content:close-quote}.epigraph figcaption{margin-top:var(--sp-2);font-size:var(--step--1);color:var(--ink-muted)}.scripture{text-align:center}.scripture blockquote{font-family:var(--font-prayer);font-size:var(--step-2);color:var(--ink);text-wrap:pretty;font-style:italic;line-height:1.5}.scripture figcaption{margin-top:var(--sp-3);font-size:var(--step--1);letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-weight:600}.scripture__translation{margin-top:var(--sp-1);letter-spacing:0;text-transform:none;color:var(--ink-muted);font-weight:400;display:block}.prayer-text p{font-family:var(--font-prayer);font-size:var(--step-2);text-wrap:pretty;line-height:1.55}.counter{gap:var(--sp-4);margin-top:var(--sp-5);justify-items:center;display:grid}.counter__beads{gap:var(--sp-2);flex-wrap:wrap;justify-content:center;max-width:20rem;display:flex}.bead{border-radius:var(--r-pill);border:1.5px solid var(--border-strong);width:.85rem;height:.85rem;transition:background-color .25s var(--ease), transform .25s var(--ease), border-color .25s var(--ease);background:0 0}.bead--on{background:var(--gold);border-color:var(--gold);transform:scale(1.12)}.counter__status{font-size:var(--step--1);color:var(--ink-muted);font-variant-numeric:tabular-nums}.litany{gap:var(--sp-3);display:grid}.litany__line{gap:var(--sp-1);padding-bottom:var(--sp-3);border-bottom:1px solid var(--border);display:grid}.litany__line:last-child{border-bottom:0;padding-bottom:0}.litany__call{font-family:var(--font-prayer);font-size:var(--step-1)}.litany__response{font-size:var(--step--1);color:var(--accent);font-weight:600}.silence{gap:var(--sp-4);text-align:center;justify-items:center;display:grid}.silence__prompt{font-family:var(--font-prayer);font-size:var(--step-1);color:var(--ink-soft);max-width:30ch}.silence__dial{place-items:center;width:7rem;height:7rem;display:grid;position:relative}.silence__dial svg{position:absolute;inset:0;transform:rotate(-90deg)}.silence__track{fill:none;stroke:var(--border);stroke-width:2.5px}.silence__value{fill:none;stroke:var(--gold);stroke-width:2.5px;stroke-linecap:round;transition:stroke-dashoffset 1s linear}.silence__time{font-variant-numeric:tabular-nums;font-size:var(--step-2);font-family:var(--font-prayer);color:var(--ink-soft);position:relative}.intention textarea{width:100%;min-height:6.5rem;padding:var(--sp-3) var(--sp-4);background:var(--bg-sunk);border:1px solid var(--border);border-radius:var(--r-md);font-family:var(--font-prayer);font-size:var(--step-1);resize:vertical;line-height:1.6}.intention textarea::placeholder{color:var(--ink-muted)}.intention__hint{margin-top:var(--sp-2);font-size:var(--step--1);color:var(--ink-muted)}.source{margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--border);font-size:var(--step--1);color:var(--ink-muted)}.source a{color:inherit}.reader__nav{gap:var(--sp-3);padding-top:var(--sp-4);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.reader__done{gap:var(--sp-4);text-align:center;padding:var(--sp-6) var(--sp-4);background:var(--accent-soft);border-radius:var(--r-lg);justify-items:center;display:grid}.reader__done h2{font-size:var(--step-2)}.reader__done p{color:var(--ink-soft);max-width:34ch}.toast{left:50%;bottom:max(var(--sp-4), env(safe-area-inset-bottom));z-index:50;align-items:center;gap:var(--sp-4);width:calc(100% - var(--sp-6));max-width:28rem;padding:var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-5);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--r-pill);box-shadow:var(--shadow-lg);animation:rise .35s var(--ease);display:flex;position:fixed;translate:-50%}@keyframes rise{0%{opacity:0;translate:-50% 1rem}}.toast__text{font-size:var(--step--1);flex:1}.footer{padding:var(--sp-6) var(--sp-4);padding-bottom:max(var(--sp-6), env(safe-area-inset-bottom));text-align:center;font-size:var(--step--1);color:var(--ink-muted);border-top:1px solid var(--border)}.footer p+p{margin-top:var(--sp-2)}.view-enter{animation:fade .3s var(--ease)}@keyframes fade{0%{opacity:0;transform:translateY(6px)}}
