:root{--paper:#fff;--ink:#152b49;--navy:#152b49;--muted:#52647a;--line:#e2e7ed;--accent:#a57c38;--accent-soft:#f7f2e8;--focus:#a57c38;--font:-apple-system,BlinkMacSystemFont,'Segoe UI','Hiragino Kaku Gothic ProN','Yu Gothic','Malgun Gothic',sans-serif}
*{box-sizing:border-box}
html{height:100%;scrollbar-gutter:stable}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 var(--font);position:relative;isolation:isolate}
button,a,summary{-webkit-tap-highlight-color:transparent}
button{font:inherit;cursor:pointer}
a{color:var(--navy);text-underline-offset:3px}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
h1,h2{font-weight:500;line-height:1.2;letter-spacing:-.4px}
h1{font-size:clamp(25px,3.5vw,40px);margin:6px 0 12px}
p{margin:0 0 12px}
.hidden{display:none!important}
.header{height:44px;max-width:1100px;padding:0 24px;margin:auto;display:flex;justify-content:flex-end;align-items:center;position:relative;z-index:30}
.language-menu{position:relative;font-size:12px}
.language-menu>summary{cursor:pointer;min-height:40px;padding:10px 8px;list-style:none;display:flex;align-items:center;gap:7px;color:var(--muted)}
.language-menu>summary::-webkit-details-marker{display:none}
.language-menu>summary>span{color:var(--accent);font-size:20px;line-height:1}
.language-menu>summary::after{content:'⌄';color:var(--accent)}
.languages{position:absolute;right:0;top:100%;min-width:150px;padding:6px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 25px #152b4912;border-radius:6px;display:grid}
.languages a{padding:10px 12px;min-height:42px;text-decoration:none;font-size:13px;border-radius:3px}
.languages a[aria-current]{background:var(--accent-soft);font-weight:600}
.presence{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;background:#fffffffa;border-bottom:1px solid var(--line);padding:7px 12px;min-height:32px}
.presence-dot{width:6px;height:6px;flex-shrink:0;border-radius:50%;background:var(--accent)}
main{max-width:1100px;margin:auto;padding:32px 24px}
.landing{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.eyebrow{font-size:11px;font-weight:500;color:var(--muted);margin:0 0 7px}
.intro{font-size:15px;color:var(--muted);max-width:390px}
.motto,.brand,.brand-mark{display:none}
.daily-card{border-left:1px solid var(--line);padding:16px 0 16px 30px}
.daily-card blockquote{font-size:23px;line-height:1.4;margin:8px 0 12px}
.quote-author{font-size:12px;font-weight:600;margin:0 0 3px}
.source-line,.source-link,.translation-note{font-size:10px;color:var(--muted)}
.source-link{display:inline-block;margin-top:5px}
.translation-note{display:block;margin-top:3px}
.today-mysteries{margin:16px 0;border-block:1px solid var(--line)}
.today-mysteries summary{cursor:pointer;padding:12px 0;font-size:13px}
.mystery-list{margin:0 0 12px;padding-left:24px;font-size:13px}
.mystery-list li{padding:4px 0}
.mystery-list li::marker{color:var(--accent)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:11px 18px;border:1px solid var(--navy);border-radius:4px;text-decoration:none;font-size:14px;line-height:1.4;text-align:center;box-shadow:0 2px 8px #152b4908}
.primary{background:var(--navy);color:#fff;border-bottom:3px solid var(--accent)}
.primary:hover{background:#244164}
.secondary{background:#fff;color:var(--navy);border-color:var(--line)}
.daily-card>.button{width:100%;justify-content:space-between}
footer{max-width:1100px;margin:auto;padding:14px 24px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;color:var(--muted);font-size:11px}
footer>span{display:none}
.privacy{max-width:440px}
.privacy summary{cursor:pointer;min-height:32px}
.privacy p{font-size:12px;margin-top:8px}
/* The prayer fits the viewport. Only the text area scrolls. */
body.praying{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}
.praying .header,.praying .presence{flex-shrink:0}
.praying footer{display:none}
.praying main{width:100%;max-width:760px;flex:1;min-height:0;padding:10px 24px 6px;display:flex;flex-direction:column;margin:0 auto}
.prayer{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;touch-action:pan-y}
.prayer-top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;color:var(--muted);flex-shrink:0}
.text-button{padding:7px 0;min-height:36px;font-size:12px;color:var(--muted);border:0;background:none}
.progress{display:flex;gap:4px;margin:3px 0 12px;flex-shrink:0}
.progress span{flex:1;height:2px;background:var(--line);border-radius:2px}
.progress .done{background:var(--accent)}
#screen{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
#screen>.eyebrow{flex-shrink:0}
#screen h2{font:500 clamp(22px,3vw,29px)/1.22 var(--font);margin:0 0 12px;flex-shrink:0}
#screen h2:focus{outline:none}
.screen-copy{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;padding:0 4px 8px 0;scrollbar-width:thin;scrollbar-color:#d1bd99 transparent;-webkit-overflow-scrolling:touch}
.prayer-text{font-size:20px;line-height:1.6;white-space:normal;margin:4px 0 14px}
.meditation{font-size:18px;line-height:1.55;margin:0 0 10px}
.intention{border-left:2px solid var(--accent);padding:6px 0 6px 12px;font-size:13px;margin:10px 0;color:var(--muted);position:relative;isolation:isolate}
.intention::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--accent-soft);opacity:.45}
.decade{font-size:12px;font-weight:500;margin:10px 0}
.prayer-details,.reading-details,.source-details{border-top:1px solid var(--line);font-size:12px}
.prayer-details summary,.reading-details summary,.source-details summary{cursor:pointer;min-height:38px;padding:9px 0;color:var(--navy)}
.prayer-details h3{font-size:14px;margin:12px 0 6px}
.prayer-details p{font-size:17px;line-height:1.6;margin:0 0 14px}
.reading{font-size:17px;line-height:1.6;margin:12px 0}
.reference,.reading-note,.source-details p{font-size:11px;color:var(--muted);margin:7px 0}
.reading-details>a,.source-details>a{display:inline-block;min-height:34px;padding:6px 0}
.navigation{display:flex;justify-content:space-between;gap:10px;padding-top:8px;flex-shrink:0;background:#fff}
.navigation .primary{margin-left:auto;min-width:140px}
.swipe-hint{font-size:10px;text-align:center;color:var(--muted);margin:5px 0 0;flex-shrink:0;padding-bottom:env(safe-area-inset-bottom,0px)}
.litany-list{list-style:none;padding:0;margin:8px 0 14px}
.litany-list li{font-size:18px;line-height:1.5;padding:8px 0;border-bottom:1px solid var(--line)}
.litany-list small{display:block;color:var(--muted);font-size:13px;margin-top:3px}
.finished{overflow-y:auto;min-height:0;text-align:center;padding:20px 0}
.finished .seal{color:var(--accent);font-size:30px;margin:0 0 16px}
.finished p{font-size:15px;color:var(--muted);margin-bottom:20px}
.share-actions{display:grid;gap:10px;max-width:330px;margin:auto}
.toast{font-size:12px!important;margin-top:8px}
/* Carved backgrounds retain each scene's original proportions. */
.stone-relief{position:relative;isolation:isolate;aspect-ratio:var(--art-ratio,1.4);width:100%;height:auto;overflow:hidden;border:0;background:#fff}
.hero-art{max-width:420px}
.stone-relief.mystery-art{width:min(100%,calc(180px * var(--art-ratio,1.4)));flex-shrink:0;margin:0 auto 12px}
.stone-relief>.stone-base{position:absolute;left:0;top:-15%;width:100%;height:130%;object-fit:fill;z-index:0;pointer-events:none}
.relief-window{position:absolute;left:8%;top:11%;width:84%;height:78%;overflow:hidden;z-index:1;mix-blend-mode:multiply}
.relief-window>.relief-figure{position:absolute;left:var(--image-left,0%);top:var(--image-top,0%);width:var(--image-width,100%);height:auto;max-width:none;max-height:none;object-fit:initial}
body::before,body::after{content:'';position:fixed;z-index:-1;pointer-events:none;background:url('stone-background-v2.webp') center/100% 100% no-repeat}
body::before{width:310px;height:610px;left:-245px;top:110px;opacity:.12;transform:rotate(-8deg)}
body::after{width:340px;height:540px;right:-260px;bottom:-100px;opacity:.10;transform:rotate(11deg)}
@media(max-width:700px){
 .header{height:36px;padding:0 14px}.language-menu>summary{min-height:36px;padding:6px 4px}
 .presence{font-size:11px;min-height:29px;padding:5px 12px}
 main{padding:16px 20px}.landing{display:flex;flex-direction:column;gap:12px;align-items:stretch}
 h1{font-size:25px;margin:3px 0 6px}.intro{font-size:13px;line-height:1.4;margin-bottom:8px}
 .welcome>.eyebrow{font-size:10px;margin-bottom:4px}
 .hero-art{width:min(100%,calc(145px * var(--art-ratio,1.4)));margin:auto}
 .daily-card{border-left:0;border-top:1px solid var(--line);padding:12px 0 0}
 .daily-card>.eyebrow{display:none}.daily-card blockquote{font-size:18px;line-height:1.4;margin:0 0 7px}
 .source-line{display:none}.today-mysteries{margin:10px 0}.today-mysteries summary{padding:9px 0;min-height:38px}
 .praying main{padding:5px 18px 4px}
 .progress{margin-bottom:9px}#screen h2{font-size:22px;margin-bottom:8px}
 .stone-relief.mystery-art{width:min(100%,calc(min(20dvh,145px) * var(--art-ratio,1.4)));margin-bottom:7px}
 .prayer-text{font-size:18px;line-height:1.5}.meditation{font-size:16px;line-height:1.5}
 .intention{font-size:12px;margin:6px 0;padding:5px 0 5px 10px}.decade{font-size:12px;margin:6px 0}
 .meditation{margin-bottom:8px}.prayer-details summary,.reading-details summary,.source-details summary{min-height:34px;padding:7px 0}
 .screen-copy>.eyebrow{margin-bottom:4px}.navigation .button{padding:10px 14px;min-height:44px;min-width:0;flex:1}
 .litany-list li{font-size:17px}.litany-list small{font-size:12px}
 footer{padding:8px 20px}.praying .swipe-hint{font-size:9px}
 body::before{width:210px;height:470px;left:-190px;opacity:.09}
 body::after{width:230px;height:400px;right:-211px;opacity:.08}
}
@media(max-height:560px){
 .praying .header{height:30px}.praying .language-menu>summary{min-height:30px}
 .prayer-top .text-button{min-height:30px}.progress{margin-bottom:6px}
 #screen h2{font-size:20px;margin-bottom:5px}
 .stone-relief.mystery-art{width:min(100%,calc(17dvh * var(--art-ratio,1.4)));margin-bottom:5px}
 .prayer-text{font-size:17px}.meditation{font-size:15px}.swipe-hint{display:none}
}
html:lang(ja) .prayer-text,html:lang(ko) .prayer-text{font-size:18px;line-height:1.65}
html:lang(ko) .prayer-text,html:lang(ko) .meditation{word-break:keep-all;overflow-wrap:anywhere}
@media(prefers-reduced-motion:no-preference){.button{transition:background .15s}}

/* Content-specific white-margin framing; no inline styles required. */
.artwork-01{--art-ratio:1.330888823702;--image-width:110.02865329513%;--image-left:-3.7249283667622%;--image-top:-1.0266940451745%;}
.artwork-02{--art-ratio:1.2474747474747;--image-width:115.48872180451%;--image-left:-7.9699248120301%;--image-top:0%;}
.artwork-03{--art-ratio:1.3700234192037;--image-width:106.66666666667%;--image-left:-3.0555555555556%;--image-top:-0.81967213114754%;}
.artwork-04{--art-ratio:1.3179723502304;--image-width:109.09090909091%;--image-left:-5.1136363636364%;--image-top:0%;}
.artwork-05{--art-ratio:1.4098432055749;--image-width:102.81124497992%;--image-left:-2.1419009370817%;--image-top:-0.8130081300813%;}
.artwork-06{--art-ratio:1.2775007333529;--image-width:114.62686567164%;--image-left:-6.865671641791%;--image-top:-2.258726899384%;}
.artwork-07{--art-ratio:1.3050193050193;--image-width:113.60946745562%;--image-left:-4.4378698224852%;--image-top:-2.9106029106029%;}
.artwork-08{--art-ratio:1.3662177985948;--image-width:106.96378830084%;--image-left:-3.4818941504178%;--image-top:-1.2295081967213%;}
.artwork-09{--art-ratio:1.3658746063556;--image-width:104.63215258856%;--image-left:-2.724795640327%;--image-top:0%;}
.artwork-10{--art-ratio:0.96343873517787;--image-width:146.28571428571%;--image-left:-23.238095238095%;--image-top:0%;}
.artwork-11{--art-ratio:1.5004598405886;--image-width:101.99203187251%;--image-left:-1.32802124834%;--image-top:-3.862660944206%;}
.artwork-12{--art-ratio:1.3815331010453;--image-width:104.91803278689%;--image-left:-2.7322404371585%;--image-top:-2.0325203252033%;}
.artwork-13{--art-ratio:1.3769761425697;--image-width:104.20624151967%;--image-left:-1.6282225237449%;--image-top:-0.20120724346076%;}
.artwork-14{--art-ratio:1.3681318681319;--image-width:102.81124497992%;--image-left:-1.338688085676%;--image-top:-0.59171597633136%;}
.artwork-15{--art-ratio:1.3062026382262;--image-width:107.2625698324%;--image-left:-3.3519553072626%;--image-top:0%;}
.artwork-16{--art-ratio:1.2275714285714;--image-width:116.18759455371%;--image-left:-8.018154311649%;--image-top:-0.4%;}
.artwork-17{--art-ratio:1.3173635307782;--image-width:110.02865329513%;--image-left:-5.1575931232092%;--image-top:-0.40650406504065%;}
.artwork-18{--art-ratio:1.4943888383379;--image-width:101.31926121372%;--image-left:-0.65963060686016%;--image-top:-2.1231422505308%;}
.artwork-19{--art-ratio:1.3246882086168;--image-width:106.81502086231%;--image-left:-3.6161335187761%;--image-top:0%;}
.artwork-20{--art-ratio:2.3930968360499;--image-width:100%;--image-left:0%;--image-top:-37.58389261745%;}
