@font-face{font-family:TeX Gyre Schola;src:url(../fonts/texgyreschola/texgyreschola-regular.woff2) format("woff2"),url(../fonts/texgyreschola/texgyreschola-regular.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:TeX Gyre Schola;src:url(../fonts/texgyreschola/texgyreschola-italic.woff2) format("woff2"),url(../fonts/texgyreschola/texgyreschola-italic.otf) format("opentype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:TeX Gyre Schola;src:url(../fonts/texgyreschola/texgyreschola-bold.woff2) format("woff2"),url(../fonts/texgyreschola/texgyreschola-bold.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:TeX Gyre Schola;src:url(../fonts/texgyreschola/texgyreschola-bolditalic.woff2) format("woff2"),url(../fonts/texgyreschola/texgyreschola-bolditalic.otf) format("opentype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:C059;src:url(../fonts/urw_newcentury/C059-Roman.woff2) format("woff2"),url(../fonts/urw_newcentury/C059-Roman.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:C059;src:url(../fonts/urw_newcentury/C059-Italic.woff2) format("woff2"),url(../fonts/urw_newcentury/C059-Italic.otf) format("opentype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:C059;src:url(../fonts/urw_newcentury/C059-Bold.woff2) format("woff2"),url(../fonts/urw_newcentury/C059-Bold.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:C059;src:url(../fonts/urw_newcentury/C059-BdIta.woff2) format("woff2"),url(../fonts/urw_newcentury/C059-BdIta.otf) format("opentype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Atkinson Hyperlegible;src:url(../fonts/Atkinson_Hyperlegible/AtkinsonHyperlegible-Regular.woff2) format("woff2"),url(../fonts/Atkinson_Hyperlegible/AtkinsonHyperlegible-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Atkinson Hyperlegible;src:url(../fonts/Atkinson_Hyperlegible/AtkinsonHyperlegible-Bold.woff2) format("woff2"),url(../fonts/Atkinson_Hyperlegible/AtkinsonHyperlegible-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{--bg:#0b1220;--panel:#0f172a;--card:#111827;--border:#1f2937;--text:#e5e7eb;--muted:#94a3b8;--accent:#22d3ee;--accent-strong:#0ea5e9;--shadow:0 20px 60px rgba(0,0,0,.3);--font-body:"Atkinson Hyperlegible","Inter","Segoe UI",system-ui,-apple-system,sans-serif;--font-serif:"TeX Gyre Schola","C059",Georgia,"Times New Roman",serif;--font-size-base:16px;--glass-bg:rgba(15,23,42,.78);--glass-blur:18px;--bead-color:#94a3b8;--bead-active:#22d3ee;--bead-glow:rgba(34,211,238,.35);--cross-color:#e5e7eb;--rope-color:#475569}[data-theme=light]{--bg:#f7f9fc;--panel:#fff;--card:#f1f5f9;--border:#d7dde7;--text:#0f172a;--muted:#475569;--accent:#2563eb;--accent-strong:#1d4ed8;--shadow:0 20px 40px rgba(15,23,42,.12);--glass-bg:hsla(0,0%,100%,.78);--bead-color:#94a3b8;--bead-active:#2563eb;--bead-glow:rgba(37,99,235,.3);--cross-color:#0f172a;--rope-color:#cbd5e1}.app[hidden],.completion-overlay[hidden],.gate[hidden],.setup-panel[hidden],.sidebar[hidden]{display:none!important}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-body);font-size:var(--font-size-base);background:radial-gradient(circle at 20% 20%,rgba(34,211,238,.12),transparent 28%),radial-gradient(circle at 80% 0,rgba(14,165,233,.18),transparent 30%),var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden}.backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:40;opacity:0;pointer-events:none;transition:opacity .25s ease}.backdrop.is-visible{opacity:1;pointer-events:auto}.gate{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 30%,rgba(34,211,238,.15),transparent 40%),radial-gradient(circle at 70% 10%,rgba(14,165,233,.2),transparent 35%),var(--bg);padding:24px}.gate-content{text-align:center;max-width:420px;width:100%}.gate-title{font-family:var(--font-serif);font-size:clamp(28px,6vw,42px);font-weight:700;margin:0 0 8px;color:var(--text)}.gate-subtitle{color:var(--muted);margin:0 0 32px;font-size:15px}.gate-choices{gap:16px}.gate-btn,.gate-choices{display:flex;flex-direction:column}.gate-btn{align-items:center;gap:6px;background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:24px 20px;cursor:pointer;color:var(--text);transition:border-color .2s,box-shadow .2s,transform .15s;box-shadow:var(--shadow)}.gate-btn:focus-visible,.gate-btn:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--bead-glow);transform:translateY(-2px);outline:none}.gate-btn-icon{font-size:36px;line-height:1}.gate-btn-label{font-size:18px;font-weight:700}.gate-btn-desc{font-size:13px;color:var(--muted)}.setup-panel{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 30%,rgba(34,211,238,.1),transparent 40%),var(--bg);padding:24px}.setup-content{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:28px 24px;max-width:400px;width:100%;box-shadow:var(--shadow)}.setup-content h2{margin:0 0 20px;font-family:var(--font-serif);font-size:22px}.field{margin-bottom:16px}.field label{display:block;font-weight:600;margin-bottom:6px;color:var(--text);font-size:14px}button,select{font-family:inherit;font-size:14px}select{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--text);outline:none;appearance:none}select:focus-visible{border-color:var(--accent)}.toggles{flex-direction:column}.toggle-row,.toggles{display:flex;gap:10px}.toggle-row{align-items:center;cursor:pointer;font-size:14px}.toggle-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}.btn{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:600;transition:border-color .15s,background .15s}.btn:focus-visible,.btn:hover{border-color:var(--accent);outline:none}.btn-accent{background:var(--accent);border-color:var(--accent);color:#02101f;width:100%;padding:12px;font-size:15px;margin-top:8px}.btn-accent:focus-visible,.btn-accent:hover{filter:brightness(1.08)}.btn-ghost{background:transparent}.icon-button{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:8px;padding:8px 10px;cursor:pointer}.icon-button.ghost{background:transparent;border:1px solid transparent;font-size:18px}.app{min-height:100vh;display:flex;flex-direction:column;gap:0;padding:0}.top-bar{justify-content:space-between;padding:8px clamp(12px,2vw,28px);position:sticky;top:0;z-index:30;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--border)}.top-bar,.top-left,.top-right{display:flex;align-items:center}.top-left,.top-right{gap:8px}.top-center{flex:1;text-align:center}.top-title{font-family:var(--font-serif);font-weight:700;font-size:16px}.step-counter{font-size:12px;color:var(--muted);white-space:nowrap}.sidebar{position:fixed;top:0;left:0;bottom:0;width:300px;max-width:85vw;background:var(--panel);border-right:1px solid var(--border);z-index:50;display:flex;flex-direction:column;padding:16px;transform:translateX(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow);overflow-y:auto}.sidebar.is-open{transform:translateX(0)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;font-weight:700;font-size:16px}.sidebar-body{display:flex;flex-direction:column;gap:6px}.sidebar-action{text-align:left;padding:12px}.divider{border:none;border-top:1px solid var(--border);margin:8px 0}.app-layout{flex:1;display:flex;flex-direction:column;position:relative;overflow:hidden}.prayer-card{position:relative;z-index:10;padding:16px clamp(12px,3vw,28px) 8px;touch-action:pan-y}.prayer-card-inner{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--border);border-radius:18px;padding:20px;box-shadow:var(--shadow);transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .25s ease;will-change:transform}.prayer-card-inner.is-swiping{transition:none}.prayer-header{display:flex;flex-direction:column;gap:2px;margin-bottom:12px}.prayer-section-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:700}.prayer-label{font-family:var(--font-serif);font-size:20px;font-weight:700}.prayer-body{margin-bottom:16px}.prayer-text{font-family:var(--font-serif);font-size:17px;line-height:1.65;white-space:pre-line}.prayer-intention{margin-top:10px;font-size:14px;color:var(--accent);font-style:italic}.mystery-info{margin-bottom:16px;padding:14px;background:var(--card);border:1px solid var(--border);border-radius:12px}.mystery-title{margin:0 0 6px;font-family:var(--font-serif);font-size:18px}.mystery-desc{margin:0 0 6px;font-size:14px;color:var(--muted);line-height:1.5}.mystery-fruit{margin:0 0 8px}.mystery-fruit,.scripture-link{font-size:13px;color:var(--accent);font-weight:600}.scripture-link{display:inline-block;text-decoration:none;border:1px solid var(--accent);border-radius:8px;padding:6px 12px;transition:background .15s,color .15s}.scripture-link:hover{background:var(--accent);color:#02101f}.prayer-nav{display:flex;gap:10px;justify-content:space-between}.prayer-nav-btn{flex:1;text-align:center}.rosary-container{flex:1;display:flex;align-items:center;justify-content:center;padding:8px 16px 24px;min-height:200px}.rosary-svg{width:100%;max-width:380px;height:auto}.rosary-svg .bead{fill:var(--bead-color);transition:fill .4s ease,filter .4s ease}.rosary-svg .bead.active{fill:var(--bead-active);filter:drop-shadow(0 0 8px var(--bead-glow))}.rosary-svg .bead.section-active{fill:var(--bead-active);opacity:.6;filter:drop-shadow(0 0 5px var(--bead-glow))}.rosary-svg .bead.decade{stroke:var(--border);stroke-width:1.2}.rosary-svg .rope-line{stroke:var(--rope-color);stroke-width:2;fill:none}.rosary-svg .cross-shape{fill:var(--cross-color)}.rosary-svg .cross-shape.active{fill:var(--bead-active);filter:drop-shadow(0 0 10px var(--bead-glow))}.completion-overlay{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));padding:24px}.completion-content{text-align:center;background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:32px 28px;max-width:360px;width:100%;box-shadow:var(--shadow)}.completion-icon{font-size:48px;margin:0 0 12px;color:var(--accent)}.completion-content h2{font-family:var(--font-serif);margin:0 0 8px}.completion-content p{color:var(--muted);margin:0 0 20px}.completion-actions{display:flex;flex-direction:column;gap:10px}.completion-actions .btn{width:100%}.toast-container{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:var(--accent);color:#02101f;padding:10px 16px;border-radius:12px;box-shadow:var(--shadow);font-weight:700;font-size:14px;opacity:0;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease;pointer-events:auto;white-space:nowrap}.toast.is-visible{opacity:1;transform:translateY(0)}@media (min-width:768px){.app-layout{flex-direction:row;padding:0 clamp(12px,2vw,28px);gap:16px}.prayer-card{flex:2;padding:16px 0;max-width:680px}.rosary-container{flex:1;padding:16px 0;max-width:400px}.gate-choices{flex-direction:row}.gate-btn{flex:1}}@media (min-width:1200px){.prayer-card{max-width:760px}.rosary-container{max-width:460px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}