@font-face{font-family:Fira;src:url('assets/FiraSans-Regular.ttf')}@font-face{font-family:Fira;src:url('assets/FiraSans-ExtraBold.ttf');font-weight:800}@font-face{font-family:Tangerine;src:url('assets/Tangerine-Regular.ttf')}@font-face{font-family:Otflag;src:url('assets/OtflagSans-Medium.otf')}
:root{--maroon:#270000;--red:#a51212;--gold:#dd9e00;--cream:#f2e9d4;--ink:#2b1210}*{box-sizing:border-box}body{margin:0;background:#1c0807;color:var(--ink);font-family:Fira,Arial,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #297bac;outline-offset:4px}button{-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}.app{max-width:540px;margin:auto;position:relative;min-height:100svh;background:#fff;overflow:hidden}.home{height:100vh;max-height:100vh;min-height:0;position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column}.calendar-card{position:relative;background:var(--maroon);color:white;border-radius:0 0 35px 35px;padding:65px 20px 38px;z-index:2;flex:0 1 auto;max-height:calc(100% - 100px);overflow-y:auto}h1{font:normal clamp(52px,11.5vw,83px)/1.15 Tangerine,cursive;text-align:center;background:var(--red);border-radius:35px;margin:0 0 29px;padding:9px 4px 4px;white-space:nowrap}.calendar-month{text-align:center;margin:0 0 20px;letter-spacing:1px;font-size:12px;color:#e7c8b6}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:0 22px}.weekdays{font:28px Otflag,Fira,sans-serif;margin-bottom:9px;text-align:center}.calendar button{aspect-ratio:1/1.06;padding:0;border:0;border-radius:9px;background:var(--red);font-size:30px;color:white;position:relative}.calendar button.travel-day{background:var(--gold);color:#270000}.calendar button:hover{filter:brightness(1.16)}.calendar button.done:after{content:'✓';position:absolute;right:4px;top:1px;font-size:11px}.calendar button[aria-current=date]{box-shadow:0 0 0 2px white,0 0 0 5px #ffffff35}.calendar-hint{text-align:center;color:#ddbdab;font-size:11px;margin:25px 0 0}.illustration{position:relative;min-height:0;flex:1;margin-top:-3px;isolation:isolate}.city{position:absolute;width:155%;max-width:none;left:-27%;bottom:-2px;top:20px;min-height:100%;object-fit:cover;object-position:center bottom;z-index:0}.pope{position:absolute;width:88%;height:100%;object-fit:contain;object-position:center bottom;left:12%;bottom:0;z-index:1}.info-button{position:absolute;bottom:17px;left:12px;border:0;border-radius:7px;background:var(--gold);color:var(--ink);font-weight:800;width:29px;height:29px;z-index:3;font-size:20px}.day-screen{background:var(--cream);position:fixed;inset:0;max-width:540px;margin:auto;height:100svh;z-index:4;display:flex;flex-direction:column}.day-header{display:flex;align-items:center;justify-content:space-between;padding:27px 28px 12px;gap:20px;flex-shrink:0}.day-header>span{font-size:12px;letter-spacing:.4px}.close-button{background:#ffca6f;border:0;border-radius:7px;font-size:23px;min-width:44px;height:44px;color:#000;flex-shrink:0}.reading-area{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:15px 30px 34px;scrollbar-color:#bba47e var(--cream)}h2{font-size:28px;line-height:1.22;font-weight:800;margin:5px 0 40px;overflow-wrap:anywhere}.prose{font-size:21px;line-height:1.55;color:#000;overflow-wrap:anywhere}.prose p{margin:0 0 24px}.prayer{padding-top:2px}.bottom-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;padding:12px 16px max(14px,env(safe-area-inset-bottom));background:var(--ink);flex-shrink:0;align-items:stretch}.bottom-tabs button{border:0;border-radius:8px;background:var(--red);color:white;min-width:0;display:flex;align-items:center;justify-content:space-between;flex-direction:column;gap:7px;padding:13px 3px 10px;position:relative;font-size:14px}.bottom-tabs button img{width:58px;height:58px;max-width:85%;object-fit:contain}.bottom-tabs button[aria-selected=true]{background:var(--cream);color:#310000;border-radius:9px 9px 7px 7px}.bottom-tabs button:hover:not([aria-selected=true]){background:#c22521}fieldset{border:0;margin:0;padding:0}legend{font-size:17px;margin-bottom:25px;line-height:1.5}.offering-option{display:flex;gap:13px;align-items:flex-start;font-size:24px;line-height:1.3;margin-bottom:25px;cursor:pointer}.offering-option input{accent-color:var(--red);height:25px;width:25px;flex-shrink:0;margin:2px 0 0}.note-label{font-size:16px;display:block;margin-top:30px}.note-label span{font-size:13px;color:#705e4e}textarea{margin-top:10px;width:100%;padding:12px;background:#fff9ec;border:1px solid #c9b99b;border-radius:7px;color:var(--ink);resize:vertical;font-size:18px;line-height:1.5}.action-button{background:var(--red);border:0;border-radius:8px;padding:14px 20px;color:white;font-size:16px;margin-top:15px;min-height:48px}.action-button[aria-pressed=true]{background:#5b6b37}.storage-note{font-size:12px;line-height:1.5;color:#715e4c}.save-status{font-size:15px;line-height:1.5;color:#52622d}.travel-note{font-size:13px;line-height:1.6;border-left:3px solid var(--gold);padding:6px 12px;margin:0 0 24px}h3{font-size:19px;line-height:1.45;margin:0 0 26px}.travel-time{color:var(--red);font-weight:800}dialog{max-width:450px;width:calc(100% - 32px);border:0;border-radius:14px;background:var(--cream);color:var(--ink);padding:28px;font-size:16px;line-height:1.65}dialog::backdrop{background:#1c0807cc}dialog .close-button{float:right;margin:0 0 12px 16px}dialog h2{font-size:26px;margin-bottom:25px}dialog p{clear:both}noscript{display:block;position:fixed;bottom:0;background:var(--cream);padding:20px;width:100%;z-index:10}
@media(min-width:600px){.app{box-shadow:0 0 80px #0006}.calendar-card{padding-top:65px}.day-header{padding-top:30px}}
@media(max-width:390px){.calendar-card{padding:40px 15px 30px}.weekdays,.calendar{margin-left:10px;margin-right:10px;gap:7px}.weekdays{margin-bottom:8px}h1{font-size:57px;margin-bottom:24px}.calendar button{font-size:26px}.reading-area{padding:12px 22px 25px}h2{font-size:25px;margin-bottom:30px}.prose{font-size:19px}.bottom-tabs{gap:9px;padding-left:12px;padding-right:12px}.bottom-tabs button{font-size:12px}.bottom-tabs button img{width:47px;height:47px}.offering-option{font-size:21px}.day-header{padding:20px 22px 10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media(max-height:700px){.calendar-card{padding-top:20px;padding-bottom:20px}h1{margin-bottom:12px;font-size:56px}.calendar-month{margin-bottom:10px}.calendar-hint{margin-top:12px}.calendar button{max-height:44px;aspect-ratio:auto;min-height:35px;font-size:24px}.weekdays{font-size:23px}}
