.prayer-palace{--prayer-progress:0;position:relative;isolation:isolate;min-height:calc(100svh - 88px);overflow:hidden;padding:clamp(52px,7vw,100px) 20px 120px}
.prayer-palace::before{content:"";position:absolute;inset:0;z-index:-3;background:radial-gradient(750px 500px at 50% 14%,rgba(200,167,91,.12),transparent 70%)}
.prayer-sky{position:absolute;inset:0;z-index:-2;pointer-events:none;overflow:hidden}.prayer-orbit{position:absolute;width:min(78vw,760px);height:min(78vw,760px);left:50%;top:-220px;transform:translateX(-50%);fill:none;stroke:var(--acc);stroke-width:.45;opacity:.16;animation:prayerOrbit 90s linear infinite}.prayer-orbit circle:nth-child(2){stroke-dasharray:2 12}.prayer-star{position:absolute;width:4px;height:4px;background:var(--acc);transform:rotate(45deg);opacity:.2;animation:prayerStar 7s ease-in-out infinite}.prayer-star.s1{top:12%;left:8%}.prayer-star.s2{top:28%;left:87%;animation-delay:1.4s}.prayer-star.s3{top:56%;left:6%;animation-delay:2.8s}.prayer-star.s4{top:74%;left:91%;animation-delay:4.2s}.prayer-star.s5{top:89%;left:33%;animation-delay:5.6s}
.prayer-intro{text-align:center;max-width:790px;margin:0 auto 42px}.prayer-kicker{font-family:var(--font-ui);font-size:10px;letter-spacing:.22em;color:var(--acc-text)}.prayer-intro h1{font-family:var(--font-display);font-size:clamp(44px,5.8vw,78px);font-weight:400;line-height:1.14;margin:8px 0 12px;background:var(--foil);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 15px 38px rgba(0,0,0,.13)}html[data-world="manuscript"] .prayer-intro h1{background:none;-webkit-text-fill-color:#5e4a25;text-shadow:0 1px #fff,0 12px 28px rgba(80,57,20,.12)}.prayer-intro p{color:var(--txt2);font-size:clamp(14px,1.5vw,18px)}.prayer-rule{display:flex;align-items:center;width:min(280px,70%);margin:22px auto 0;color:var(--acc)}.prayer-rule::before,.prayer-rule::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,currentColor)}.prayer-rule::after{transform:scaleX(-1)}.prayer-rule i{width:9px;height:9px;border:1px solid currentColor;transform:rotate(45deg);margin:0 10px;box-shadow:0 0 12px rgba(200,167,91,.4)}
.prayer-sanctum{position:relative;width:min(100%,1100px);margin:auto;padding:clamp(22px,4vw,48px);border:1px solid color-mix(in srgb,var(--acc) 34%,var(--edge));border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--paper) 96%,transparent),color-mix(in srgb,var(--bg) 91%,var(--paper)));box-shadow:0 40px 100px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.06);overflow:hidden;animation:prayerSanctumIn .8s var(--paper-ease) both}.prayer-sanctum::before{content:"";position:absolute;inset:9px;border:1px solid color-mix(in srgb,var(--acc) 15%,transparent);border-radius:12px;pointer-events:none}.prayer-sanctum::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 30%,rgba(243,224,166,.055) 45%,transparent 60%);transform:translateX(-120%);animation:prayerSweep 10s ease-in-out 2s infinite}.prayer-sanctum__halo{position:absolute;width:520px;height:520px;border-radius:50%;left:50%;top:90px;transform:translateX(-50%);background:radial-gradient(circle,rgba(200,167,91,.13),transparent 67%);pointer-events:none}
.prayer-location{position:relative;z-index:2;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding-bottom:24px;border-bottom:1px solid var(--edge)}.prayer-location__pin{width:45px;height:45px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--acc) 45%,var(--edge));border-radius:50%;color:var(--acc);box-shadow:0 0 0 5px color-mix(in srgb,var(--acc) 5%,transparent)}.prayer-location__pin svg{width:20px;fill:none;stroke:currentColor;stroke-width:1.4}.prayer-location small,.prayer-dial__label,.prayer-next small{display:block;color:var(--mut);font-size:9px;letter-spacing:.13em}.prayer-location strong{display:block;font-family:var(--font-display);font-size:20px;font-weight:500}.prayer-location div>span{display:block;color:var(--mut);font-size:10px}.prayer-locate{display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 14px;border:1px solid color-mix(in srgb,var(--acc) 45%,var(--edge));border-radius:999px;background:transparent;color:var(--acc-text);font:inherit;font-size:12px;cursor:pointer;transition:transform .2s,border-color .2s,background .2s}.prayer-locate:hover{transform:translateY(-2px);border-color:var(--acc);background:color-mix(in srgb,var(--acc) 7%,transparent)}.prayer-locate:disabled{opacity:.55;cursor:wait}.prayer-locate svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.4}
.prayer-dial{position:relative;width:min(100%,400px);aspect-ratio:1;margin:25px auto 15px;display:grid;place-items:center}.prayer-dial__rings{position:absolute;inset:0;width:100%;height:100%;fill:var(--acc);stroke:var(--acc);transform:rotate(-90deg);filter:drop-shadow(0 0 12px rgba(200,167,91,.16))}.prayer-dial__rings circle{fill:none}.ring-base{stroke-width:.6;opacity:.3}.ring-inner{stroke-width:.35;stroke-dasharray:2 8;opacity:.35}.ring-progress{stroke-width:2.2;stroke-linecap:round;stroke-dasharray:703.7;stroke-dashoffset:calc(703.7 * (1 - var(--prayer-progress)));transition:stroke-dashoffset 1s linear}.prayer-dial__moon{position:absolute;inset:13%;border:1px solid color-mix(in srgb,var(--acc) 15%,transparent);border-radius:50%;animation:prayerMoon 18s var(--ease) infinite}.prayer-dial__moon span{position:absolute;width:15px;height:15px;top:-8px;left:50%;border-radius:50%;background:var(--gold-brushed);box-shadow:0 0 18px rgba(200,167,91,.65)}.prayer-dial__content{position:relative;text-align:center}.prayer-dial__content>time{display:block;font-family:var(--font-ui);font-size:clamp(42px,7vw,70px);font-weight:300;line-height:1.15;font-variant-numeric:tabular-nums;color:var(--txt);text-shadow:0 12px 30px rgba(0,0,0,.18)}.prayer-dial__date{color:var(--mut);font-family:var(--font-naskh);font-size:13px}.prayer-next{margin-top:20px}.prayer-next strong{display:inline-block;font-family:var(--font-display);font-size:clamp(24px,3vw,34px);font-weight:500;color:var(--acc-text);margin-inline-end:10px}.prayer-next>span{font-family:var(--font-ui);font-size:14px;color:var(--txt2);font-variant-numeric:tabular-nums}
.prayer-list{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:8px 0 28px}.prayer-time{position:relative;min-height:155px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 8px;border:1px solid var(--edge);border-radius:9px;background:color-mix(in srgb,var(--paper) 62%,transparent);overflow:hidden;transition:transform .25s var(--paper-ease),border-color .25s,background .25s,box-shadow .25s}.prayer-time::before{content:"";position:absolute;width:80px;height:80px;border:1px solid color-mix(in srgb,var(--acc) 11%,transparent);transform:rotate(45deg);top:-57px;transition:top .35s}.prayer-time:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--acc) 45%,transparent)}.prayer-time:hover::before{top:-49px}.prayer-time__seal{width:31px;height:31px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--acc) 38%,var(--edge));border-radius:50%;font-family:var(--font-display);font-size:15px;color:var(--acc-text);margin-bottom:8px}.prayer-time__name{font-family:var(--font-display);font-size:19px;color:var(--txt2)}.prayer-time time{font-family:var(--font-ui);font-size:25px;font-weight:500;font-variant-numeric:tabular-nums}.prayer-time__mark{position:absolute;bottom:0;width:0;height:2px;background:var(--gold-brushed);box-shadow:0 0 12px rgba(200,167,91,.5);transition:width .35s}.prayer-time.is-next{border-color:color-mix(in srgb,var(--acc) 65%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--acc) 12%,var(--paper)),color-mix(in srgb,var(--acc) 3%,var(--paper)));box-shadow:0 16px 36px rgba(0,0,0,.15)}.prayer-time.is-next .prayer-time__seal{background:var(--gold-brushed);color:var(--on-gold);border-color:var(--acc);animation:prayerSeal 3s ease-in-out infinite}.prayer-time.is-next .prayer-time__name,.prayer-time.is-next time{color:var(--acc-text)}.prayer-time.is-next .prayer-time__mark{width:72%}
.prayer-settings{position:relative;border-block:1px solid var(--edge);padding:3px 0}.prayer-settings summary{display:flex;align-items:center;justify-content:space-between;padding:16px 5px;cursor:pointer;color:var(--txt2);font-size:13px;list-style:none}.prayer-settings summary::-webkit-details-marker{display:none}.prayer-settings summary i{width:8px;height:8px;border-inline-end:1px solid var(--acc);border-bottom:1px solid var(--acc);transform:rotate(45deg);transition:transform .25s}.prayer-settings[open] summary i{transform:rotate(225deg)}.prayer-settings__grid{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end;padding:5px 5px 18px}.prayer-settings label span{display:block;color:var(--mut);font-size:10px;margin-bottom:6px}.prayer-settings select{width:100%;height:44px;border:1px solid var(--edge);border-radius:6px;background:var(--paper);color:var(--txt);padding:0 12px;font:inherit;font-size:12px}.prayer-settings button{height:44px;border:1px solid var(--acc);border-radius:6px;background:var(--gold-brushed);color:var(--on-gold);padding:0 18px;font:inherit;font-size:12px;cursor:pointer}.prayer-settings>p{color:var(--mut);font-size:10px;padding:0 5px 14px}.prayer-status{display:flex;align-items:center;gap:9px;padding-top:18px;color:var(--mut);font-size:10px}.prayer-status__light{width:7px;height:7px;border-radius:50%;background:#3e9078;box-shadow:0 0 0 4px rgba(62,144,120,.12)}.prayer-palace[data-status="loading"] .prayer-status__light{background:var(--acc);animation:prayerStatus 1s infinite}.prayer-palace[data-status="error"] .prayer-status__light{background:#c86363}.prayer-status i{height:11px;width:1px;background:var(--edge);margin-inline:5px}
@keyframes prayerSanctumIn{from{opacity:0;transform:translateY(24px) scale(.99)}to{opacity:1;transform:none}}@keyframes prayerOrbit{to{transform:translateX(-50%) rotate(360deg)}}@keyframes prayerMoon{to{transform:rotate(360deg)}}@keyframes prayerStar{0%,100%{opacity:.12;transform:rotate(45deg) scale(.8)}50%{opacity:.65;transform:rotate(45deg) scale(1.35)}}@keyframes prayerSweep{0%,72%{transform:translateX(-120%)}90%,100%{transform:translateX(120%)}}@keyframes prayerSeal{0%,100%{box-shadow:0 0 0 0 rgba(200,167,91,.2)}50%{box-shadow:0 0 0 7px rgba(200,167,91,0)}}@keyframes prayerStatus{50%{opacity:.35}}
html[data-world="manuscript"] .prayer-sanctum{box-shadow:0 32px 80px rgba(91,68,25,.14),inset 0 1px rgba(255,255,255,.75)}
@media(max-width:800px){.prayer-list{grid-template-columns:repeat(5,minmax(112px,1fr));overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory}.prayer-time{scroll-snap-align:start}.prayer-settings__grid{grid-template-columns:1fr 1fr}.prayer-settings button{grid-column:1/-1}.prayer-location{grid-template-columns:auto 1fr}.prayer-locate{grid-column:1/-1;justify-self:stretch;justify-content:center}}
@media(max-width:560px){.prayer-palace{padding:32px 10px 90px}.prayer-intro{margin-bottom:25px}.prayer-intro h1{font-size:43px}.prayer-sanctum{padding:20px 14px;border-radius:12px}.prayer-location__pin{width:38px;height:38px}.prayer-location strong{font-size:17px}.prayer-dial{width:min(100%,330px)}.prayer-dial__content>time{font-size:44px}.prayer-list{margin-inline:-4px}.prayer-time{min-height:135px}.prayer-status{flex-wrap:wrap}.prayer-status i{display:none}.prayer-settings__grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.prayer-orbit,.prayer-dial__moon,.prayer-star,.prayer-sanctum::after,.prayer-time.is-next .prayer-time__seal,.prayer-status__light{animation:none!important}.prayer-sanctum{animation:none}.prayer-time,.prayer-locate{transition:none}}

/* Home edition: a substantial royal widget, not a second full-screen chapter. */
.prayer-palace{min-height:0;padding:clamp(18px,2vw,26px) 20px clamp(24px,3vw,34px);scroll-margin-top:90px}
.prayer-intro{max-width:680px;margin-bottom:10px}
.prayer-kicker{font-size:9px}
.prayer-intro h1{font-size:clamp(32px,3.5vw,46px);margin:3px 0 4px}
.prayer-intro p{display:none}
.prayer-rule{width:min(150px,45%);margin-top:6px}
.prayer-sanctum{display:grid;grid-template-columns:minmax(175px,205px) minmax(310px,1fr);column-gap:clamp(18px,2.5vw,28px);align-items:center;width:min(100%,680px);padding:16px clamp(17px,2.4vw,22px);box-shadow:0 28px 68px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.06)}
.prayer-location{grid-column:1/-1;padding-bottom:8px}
.prayer-location__pin{width:34px;height:34px}
.prayer-location strong{font-size:18px}
.prayer-locate{min-height:34px;padding:5px 11px}
.prayer-dial{width:min(100%,190px);margin:8px auto 3px}
.prayer-dial__content>time{font-size:clamp(30px,3vw,38px)}
.prayer-dial__date{font-size:11px}
.prayer-next{margin-top:8px}
.prayer-next strong{font-size:clamp(19px,2vw,24px)}
.prayer-list{grid-template-columns:1fr;gap:4px;margin:8px 0 6px;overflow:visible;padding:0}
.prayer-time{min-height:38px;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:9px;padding:4px 11px}
.prayer-time__seal{width:24px;height:24px;font-size:12px;margin:0}
.prayer-time__name{font-size:16px}
.prayer-time time{font-size:18px}
.prayer-settings,.prayer-status{grid-column:1/-1}
.prayer-settings summary{padding:8px 5px}
.prayer-status{padding-top:7px}
.prayer-status i,.prayer-status i+span{display:none}

/* The companion arrived: continue-listening.css owns the composition now, as a real
   two-column grid. An auto margin here would not be vertically coupled to it and the
   two cards would drift apart as their heights changed. The intro keeps its offset so
   the heading still sits over the card. */
/* Nothing left to reserve: the grid places both cards, and the intro simply centres
   over its own column like the companion's does. */

/* Royal astrolabe: every datum remains inside the medallion. */
.prayer-dial{isolation:isolate;border-radius:50%;filter:drop-shadow(0 16px 24px rgba(90,62,15,.14))}
.prayer-dial::before{content:"";position:absolute;inset:4%;z-index:-2;border-radius:50%;background:repeating-conic-gradient(from 0deg,color-mix(in srgb,var(--acc) 52%,transparent) 0 1deg,transparent 1deg 15deg);mask:radial-gradient(circle,transparent 0 82%,#000 82.5% 87%,transparent 87.5%);animation:prayerCrownTurn 80s linear infinite}
.prayer-dial::after{content:"";position:absolute;inset:18%;z-index:-1;border:1px solid color-mix(in srgb,var(--acc) 24%,transparent);border-radius:50%;background:radial-gradient(circle at 36% 28%,color-mix(in srgb,var(--acc) 13%,transparent),transparent 46%),color-mix(in srgb,var(--paper) 82%,transparent);box-shadow:inset 0 0 0 5px color-mix(in srgb,var(--acc) 3%,transparent),inset 0 0 28px color-mix(in srgb,var(--acc) 8%,transparent),0 0 24px color-mix(in srgb,var(--acc) 10%,transparent);animation:prayerHeartBreath 5s ease-in-out infinite}
.prayer-dial__rings{z-index:1}
.prayer-dial__moon{z-index:2}
.prayer-dial__content{z-index:3;width:72%;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}
.prayer-dial__label{font-size:8px;letter-spacing:.08em}
.prayer-dial__content>time{font-size:clamp(28px,2.7vw,35px);line-height:1.12;white-space:nowrap;letter-spacing:-.035em}
.prayer-dial__date{font-size:10px;line-height:1.2;white-space:nowrap}
.prayer-next{width:100%;margin-top:7px;display:grid;grid-template-columns:auto auto;align-items:baseline;justify-content:center;gap:2px 7px;line-height:1.05}
.prayer-next small{grid-column:1/-1;font-size:7px;letter-spacing:.08em;margin-bottom:1px}
.prayer-next strong{font-size:19px;line-height:1;margin:0;white-space:nowrap}
.prayer-next>span{font-size:10px;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}
.prayer-time.is-next .prayer-time__mark{animation:prayerRoyalThread 2.8s ease-in-out infinite}

@keyframes prayerCrownTurn{to{transform:rotate(360deg)}}
@keyframes prayerHeartBreath{50%{box-shadow:inset 0 0 0 5px color-mix(in srgb,var(--acc) 5%,transparent),inset 0 0 34px color-mix(in srgb,var(--acc) 13%,transparent),0 0 34px color-mix(in srgb,var(--acc) 17%,transparent)}}
@keyframes prayerRoyalThread{0%,100%{opacity:.55;filter:brightness(.9)}50%{opacity:1;filter:brightness(1.35)}}

@media(max-width:800px){
  .prayer-sanctum{grid-template-columns:1fr}
  .prayer-list{grid-template-columns:1fr;margin-top:8px;overflow:visible;padding:0}
  .prayer-time{scroll-snap-align:none}
}
@media(max-width:560px){
  .prayer-palace{padding:22px 10px 32px}
  .prayer-intro h1{font-size:38px}
  .prayer-dial{width:min(100%,190px)}
  .prayer-time{min-height:40px}
}

@media(prefers-reduced-motion:reduce){.prayer-dial::before,.prayer-dial::after,.prayer-time.is-next .prayer-time__mark{animation:none!important}}
