/* 321 PRAY V89 — 30 Topic Guided Discovery */
:root{--navy:#103366;--ink:#17365f;--gold:#ae720c;--rose:#c84267;--line:rgba(145,103,38,.18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;overflow-x:hidden;color:var(--ink);font-family:Arial,Helvetica,sans-serif;background:linear-gradient(180deg,rgba(250,253,255,.84),rgba(255,251,241,.80),rgba(249,253,255,.78)),url("theme-backgrounds/bright-gateway-world.webp") center top/cover no-repeat fixed,#f6fbff}a{color:inherit}.shell{max-width:1180px;margin:auto;padding:0 16px 38px}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:16px;padding:10px max(16px,calc((100vw - 1180px)/2 + 16px));background:rgba(255,255,255,.42);backdrop-filter:blur(8px);border-bottom:1px solid rgba(170,125,51,.10)}.brand{display:flex;align-items:center;gap:8px;text-decoration:none;white-space:nowrap}.brand .cross{font-size:1.85rem;color:var(--gold)}.brand strong{font:700 1.42rem Georgia,serif;color:var(--navy);letter-spacing:.03em}.brand small{display:block;font:700 .52rem Arial,sans-serif;letter-spacing:.15em;color:#5e7190}.topnav{margin-left:auto;display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.topnav a{font:800 .71rem Arial,sans-serif;text-decoration:none;padding:7px 8px;border-radius:999px;color:var(--navy)}
.prayer-discovery-head{text-align:center;padding:30px 12px 8px;max-width:1180px;margin:auto}.prayer-discovery-head .eyebrow{font:900 .67rem Arial,sans-serif;letter-spacing:.14em;color:#956006}.prayer-discovery-head h1{font:700 clamp(2.05rem,4.6vw,4.25rem)/.98 Georgia,serif;color:var(--navy);margin:8px 0 9px}.prayer-discovery-head>p{font-size:clamp(.94rem,1.7vw,1.12rem);line-height:1.48;max-width:800px;margin:0 auto;color:#294c78}.prayer-double-carousel{max-width:1040px;margin:14px auto 0;display:grid;gap:5px}.prayer-row-shell{position:relative;padding:0 24px}.prayer-row{display:grid;grid-auto-flow:column;grid-auto-columns:78px;gap:7px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 0 6px;scrollbar-width:none}.prayer-row::-webkit-scrollbar{display:none}.prayer-topic{scroll-snap-align:start;width:78px;min-width:78px;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:1px;padding:0;background:transparent;border:0}.prayer-topic img{width:60px;height:60px;object-fit:contain;display:block;filter:drop-shadow(0 4px 7px rgba(77,73,62,.14))}.prayer-topic span{font:800 .57rem/1.05 Arial,sans-serif;color:#143a70;text-align:center;min-height:1.25rem;display:grid;place-items:center}.prayer-topic.active img{filter:drop-shadow(0 0 8px rgba(202,139,37,.60))}.prayer-topic.active span{color:#bd365e}.prayer-arrow{position:absolute;top:38%;transform:translateY(-50%);z-index:3;border:0;background:transparent;color:#173a73;font:900 1.3rem Arial;cursor:pointer;width:20px;height:28px}.prayer-arrow.prev{left:0}.prayer-arrow.next{right:0}
.topic-title{margin:14px auto 8px;display:grid;grid-template-columns:1fr 96px;align-items:center;gap:12px}.topic-title>div>span{font:italic 1rem Georgia,serif;color:#9a6109}.topic-title h2{font:700 clamp(2.5rem,5vw,4.7rem)/.92 Georgia,serif;color:var(--rose);margin:2px 0 8px}.topic-title p{margin:0;max-width:760px;font-size:1rem;line-height:1.5;color:#244870}.topic-title img{width:88px;height:88px;object-fit:contain;justify-self:end}
.intention-box{margin:14px 0 6px;padding:14px 0 17px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(220px,.8fr) 1.2fr;gap:12px 20px;align-items:center}.intent-kicker{font:900 .62rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.12em;color:#976309}.intention-box h2{font:700 1.35rem Georgia,serif;color:#153a70;margin:3px 0 5px}.intention-box p{margin:0;font-size:.8rem;line-height:1.4;color:#55708f}.intention-box textarea{width:100%;resize:vertical;min-height:74px;border:1px solid rgba(138,100,40,.22);border-radius:14px;background:rgba(255,255,255,.54);color:#17365f;padding:11px 12px;font:600 .82rem/1.45 Arial,sans-serif;outline:none}.intention-box textarea:focus{border-color:rgba(166,111,18,.52);box-shadow:0 0 0 3px rgba(224,180,89,.14)}.intent-actions{grid-column:2;display:flex;gap:7px;align-items:center;flex-wrap:wrap}.intent-actions button,.intent-actions a{border:1px solid rgba(133,91,25,.19);border-radius:999px;background:rgba(255,255,255,.58);padding:8px 11px;text-decoration:none;color:#17447e;font:800 .67rem Arial,sans-serif;cursor:pointer}.intent-actions .share-intention{background:linear-gradient(135deg,#d74a70,#c73860);color:white;border-color:transparent}.intention-box>small{grid-column:2;color:#71809a;font:600 .59rem Arial,sans-serif;margin-top:-5px}
.section-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 28px;margin-top:8px}.panel{padding:15px 0 17px;background:transparent;border:0;border-top:1px solid var(--line)}.panel.wide{grid-column:1/-1}.panel-head{display:flex;align-items:center;gap:8px;margin-bottom:9px}.panel-head .ico{font:700 1.22rem Arial;color:var(--gold)}.panel-head h3{font:700 1.25rem Georgia,serif;color:#12376c;margin:0}.panel-head a{margin-left:auto;font:800 .67rem Arial,sans-serif;text-decoration:none;color:#174b8b}.verse-list,.quote-list,.journey-list,.path-list{display:grid;gap:6px}.verse{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:start;padding:7px 0;border-bottom:1px solid rgba(112,95,67,.09);text-decoration:none}.verse .num{font:900 .63rem Arial;color:#94610a;padding-top:3px}.verse blockquote{margin:0;font:600 .91rem/1.46 Arial,sans-serif;color:#203e68}.verse cite{display:block;margin-top:4px;font:800 .64rem Arial,sans-serif;color:#8a5c08}.go{font:900 1.05rem Arial;color:#174b8b}.saint-quote{display:grid;grid-template-columns:48px 1fr;gap:10px;align-items:center;text-decoration:none;padding:5px 0}.saint-quote img,.saint-card img{object-fit:cover;border-radius:50%;box-shadow:0 4px 12px rgba(43,66,94,.11)}.saint-quote img{width:48px;height:48px}.saint-quote blockquote{margin:0 0 3px;font:600 .89rem/1.37 Arial,sans-serif;color:#203e68}.saint-quote small{font:800 .62rem Arial;color:#805b14}.saint-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.saint-card{text-decoration:none;text-align:center;padding:5px 2px}.saint-card img{width:61px;height:61px;margin:auto}.saint-card strong{display:block;margin-top:5px;font-size:.8rem;color:#173a70}.saint-card small{display:block;margin-top:2px;font:700 .56rem Arial;color:#5f7391}.journey{display:block;text-decoration:none;padding:7px 0;border-bottom:1px solid rgba(112,95,67,.09)}.journey strong{display:block;color:#173b72;font-size:.88rem}.journey small{display:block;font:800 .61rem Arial;color:#996910;margin:2px 0}.journey span{display:block;font-size:.78rem;line-height:1.33;color:#4d6380}.path{display:flex;gap:8px;align-items:center;text-decoration:none;padding:6px 0}.path b{color:#17457f;font-size:.85rem}.path small{display:block;color:#5e7290;font:600 .64rem/1.3 Arial;margin-top:2px}.path-icon{width:27px;height:27px;display:grid;place-items:center;color:#94600a;font:900 .86rem Arial;flex:none}.related{display:flex;gap:8px;flex-wrap:wrap}.related a{text-decoration:underline;text-underline-offset:3px;padding:3px 1px;font:800 .68rem Arial;color:#224779}.source-note{font:600 .63rem/1.45 Arial;color:#657993;margin:10px 0 0}.hub-intro{text-align:center;max-width:820px;margin:18px auto}.hub-intro h2{font:700 2rem Georgia;color:#173a73;margin:0 0 6px}.hub-intro p{margin:0;line-height:1.5;color:#335377}.topic-directory{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.topic-directory>a{text-decoration:none;text-align:center;padding:8px}.topic-directory img{width:92px;height:92px;object-fit:contain}.topic-directory strong{display:block;font:700 .9rem Georgia;color:#173a70}.topic-directory span{display:block;margin-top:3px;font:600 .62rem/1.32 Arial;color:#5d7290}.footer{margin-top:17px;padding:18px;text-align:center;font:700 .64rem Arial;color:#536985;border-top:1px solid rgba(157,115,44,.12)}.toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:100;background:#173a70;color:#fff;padding:9px 13px;border-radius:999px;font:800 .66rem Arial;box-shadow:0 8px 24px rgba(20,45,80,.22)}
@media(max-width:900px){.topnav{display:none}.section-grid{grid-template-columns:1fr}.panel.wide{grid-column:auto}.topic-directory{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){body{background-attachment:scroll}.shell{padding:0 12px 28px}.topbar{position:relative;padding:9px 12px}.brand strong{font-size:1.2rem}.brand small{display:none}.prayer-discovery-head{padding-top:14px}.prayer-discovery-head h1{font-size:2.14rem}.prayer-discovery-head>p{font-size:.88rem}.prayer-row-shell{padding:0 18px}.prayer-row{grid-auto-columns:64px;gap:5px}.prayer-topic{width:64px;min-width:64px}.prayer-topic img{width:51px;height:51px}.prayer-topic span{font-size:.51rem}.topic-title{grid-template-columns:1fr 66px;margin-top:10px}.topic-title h2{font-size:2.7rem}.topic-title p{font-size:.9rem}.topic-title img{width:62px;height:62px}.intention-box{grid-template-columns:1fr}.intent-actions,.intention-box>small{grid-column:1}.intention-box textarea{min-height:82px}.panel-head h3{font-size:1.13rem}.verse{grid-template-columns:auto 1fr}.verse .go{display:none}.saint-card img{width:52px;height:52px}.saint-card strong{font-size:.7rem}.saint-card small{font-size:.52rem}.topic-directory{grid-template-columns:repeat(2,1fr)}.topic-directory img{width:78px;height:78px}}

.v89-home-prayer-needs{width:min(1040px,calc(100% - 20px));margin:4px auto 18px;text-align:center}.v89-home-prayer-needs .prayer-double-carousel{margin-top:0}.v89-all-topics{display:inline-block;margin-top:4px;color:#173d73;text-decoration:none;font:800 .67rem Arial,sans-serif}@media(max-width:560px){.v89-home-prayer-needs{margin-bottom:12px}.launcher-page .v26-landing-hero{padding-bottom:4px!important}.launcher-page .v26-landing-hero h1{font-size:clamp(2rem,8vw,3rem)!important}}


/* =========================================================
   V89 TOPIC SYSTEM — GLOBAL HORIZONTAL VIEWPORT LOCK
   The document itself NEVER scrolls sideways.
   Only .prayer-row may scroll horizontally.
   ========================================================= */

html{
  width:100%!important;
  max-width:100%!important;
  overflow-x:clip!important;
  overscroll-behavior-x:none!important;
}

body{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:clip!important;
  overscroll-behavior-x:none!important;
  position:relative!important;
}

/* Every major page container is constrained to the visual viewport */
.topbar,
.prayer-discovery-head,
.shell,
.footer{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

.topbar{
  padding-left:max(12px, env(safe-area-inset-left))!important;
  padding-right:max(12px, env(safe-area-inset-right))!important;
  overflow:hidden!important;
}

.prayer-discovery-head{
  overflow:hidden!important;
}

.shell{
  width:min(1180px,100%)!important;
  padding-left:max(12px, env(safe-area-inset-left))!important;
  padding-right:max(12px, env(safe-area-inset-right))!important;
  overflow-x:clip!important;
}

/* Grid/flex children must be allowed to shrink */
.topbar > *,
.prayer-discovery-head > *,
.shell > *,
.topic-title > *,
.intention-box > *,
.section-grid > *,
.panel > *,
.panel-head > *,
.verse > *,
.saint-quote > *,
.path > *{
  min-width:0!important;
  max-width:100%!important;
}

/* Only the icon rails are horizontal scrollers */
.prayer-double-carousel{
  width:100%!important;
  max-width:1040px!important;
  min-width:0!important;
  overflow:hidden!important;
}

.prayer-row-shell{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
  position:relative!important;
}

.prayer-row{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  overscroll-behavior-x:contain!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-x pan-y!important;
  scrollbar-width:none!important;
}

.prayer-row::-webkit-scrollbar{
  display:none!important;
}

.prayer-topic{
  flex:none!important;
  max-width:78px!important;
  overflow:visible!important;
}

.prayer-topic img{
  max-width:60px!important;
}

/* Long labels/headings/text can never widen the page */
.topic-title h2,
.topic-title p,
.intention-box h2,
.intention-box p,
.intention-box textarea,
.panel-head h3,
.panel-head a,
.verse blockquote,
.verse cite,
.saint-quote blockquote,
.journey strong,
.journey span,
.path b,
.path small,
.related a,
.source-note,
.footer{
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}

/* Prevent long topic title + badge from creating a wider grid */
.topic-title{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  grid-template-columns:minmax(0,1fr) minmax(54px,88px)!important;
  overflow:hidden!important;
}

.topic-title img{
  max-width:88px!important;
  width:100%!important;
  height:auto!important;
}

/* Prayer box and content panels stay within viewport */
.intention-box,
.section-grid,
.panel,
.verse-list,
.quote-list,
.journey-list,
.path-list,
.saint-row,
.related{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}

.intention-box textarea{
  max-width:100%!important;
}

/* Extra safety for links/buttons in narrow layouts */
.intent-actions,
.panel-head{
  flex-wrap:wrap!important;
}

.intent-actions > *,
.panel-head > *{
  max-width:100%!important;
}

/* Mobile hard lock */
@media(max-width:560px){
  html,body{
    width:100%!important;
    max-width:100%!important;
    overflow-x:clip!important;
  }

  .prayer-discovery-head{
    padding-left:8px!important;
    padding-right:8px!important;
  }

  .prayer-row-shell{
    padding-left:18px!important;
    padding-right:18px!important;
  }

  .prayer-topic{
    max-width:64px!important;
  }

  .prayer-topic img{
    max-width:51px!important;
  }

  .topic-title{
    grid-template-columns:minmax(0,1fr) 60px!important;
    gap:8px!important;
  }

  .topic-title h2{
    font-size:clamp(2rem,11vw,2.7rem)!important;
    line-height:.96!important;
  }

  .topic-title img{
    max-width:60px!important;
  }

  .section-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
}


/* V89 topic sharing + short prayer */
.share-topic,
.share-short-prayer{
  appearance:none;
  border:1px solid rgba(164,107,12,.24);
  border-radius:999px;
  min-height:38px;
  padding:8px 13px;
  background:rgba(255,255,255,.64);
  color:#173d72;
  font:900 .72rem/1 Arial,sans-serif;
  cursor:pointer;
  box-shadow:0 5px 15px rgba(40,60,90,.06);
}
.share-topic{
  margin-top:10px;
  width:max-content;
  max-width:100%;
}
.share-topic:active,
.share-short-prayer:active{
  transform:translateY(1px);
}
.topic-prayer{
  width:100%;
  max-width:860px;
  min-width:0;
  margin:11px auto 5px;
  padding:15px 18px;
  text-align:center;
  background:transparent;
  border-top:1px solid rgba(164,107,12,.18);
  border-bottom:1px solid rgba(164,107,12,.14);
  overflow-x:clip;
}
.topic-prayer-kicker{
  display:block;
  margin-bottom:4px;
  color:#94620d;
  font:900 .65rem/1.2 Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.topic-prayer h2{
  margin:0 0 7px;
  color:#173c72;
  font:700 1.35rem/1.15 Georgia,"Times New Roman",serif;
}
.topic-prayer p{
  max-width:760px;
  margin:0 auto 11px;
  color:#24466f;
  font:600 .93rem/1.52 Arial,sans-serif;
  overflow-wrap:anywhere;
}
.share-short-prayer{
  margin:0 auto;
}
@media(max-width:560px){
  .share-topic,
  .share-short-prayer{
    min-height:36px;
    padding:8px 11px;
    font-size:.66rem;
  }
  .topic-prayer{
    padding:13px 8px;
  }
  .topic-prayer h2{
    font-size:1.18rem;
  }
  .topic-prayer p{
    font-size:.86rem;
  }
}


/* V89 topic-linked Saint Prayer Cards */
.prayer-card-panel{
  overflow-x:clip!important;
}
.prayer-card-intro{
  margin:0 0 9px;
  color:#516984;
  font:600 .76rem/1.4 Arial,sans-serif;
}
.prayer-card-match-row{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  width:100%;
  max-width:100%;
  min-width:0;
}
.prayer-card-match{
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:9px;
  row-gap:2px;
  min-width:0;
  max-width:100%;
  padding:7px 0;
  color:#173e72;
  text-decoration:none;
  border-bottom:1px solid rgba(123,103,69,.09);
}
.prayer-card-match img{
  grid-row:1/3;
  width:54px;
  height:54px;
  max-width:54px;
  object-fit:cover;
  border-radius:50%;
  box-shadow:0 4px 12px rgba(40,64,92,.12);
}
.prayer-card-match strong{
  min-width:0;
  color:#173e72;
  font:800 .78rem/1.18 Arial,sans-serif;
  overflow-wrap:anywhere;
}
.prayer-card-match small{
  min-width:0;
  color:#94620d;
  font:800 .60rem/1.2 Arial,sans-serif;
  overflow-wrap:anywhere;
}
@media(max-width:700px){
  .prayer-card-match-row{
    grid-template-columns:1fr;
    gap:2px;
  }
  .prayer-card-match{
    grid-template-columns:48px minmax(0,1fr);
  }
  .prayer-card-match img{
    width:48px;
    height:48px;
    max-width:48px;
  }
}

/* V89.23 official logo */
.topbar .brand .v89-official-logo{
  display:block;width:auto;height:46px;max-width:min(325px,42vw);object-fit:contain
}
@media(max-width:560px){
  .topbar .brand .v89-official-logo{
    content:url("brand/321-pray-logo-compact.svg?v=923");
    height:37px;max-width:min(230px,66vw)
  }
}
