:root{--night:#120828;--deep:#0b0420;--surf:#1d0f42;--surf2:#28165c;--line:#3a2482;--ink:#f6f1ff;--mute:#c4b5ef;--neon:#eeff41;--on-neon:#1a0b33;--violet:#b14bff;--pink:#ff4fb8;--cyan:#3ee6ff}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;min-height:100vh;background:radial-gradient(1200px 600px at 50% -200px,#2a1260 0%,var(--night) 60%) fixed,var(--night);color:var(--ink);
  font:600 1.12rem/1.6 'Nunito',system-ui,sans-serif;-webkit-tap-highlight-color:transparent;padding-bottom:150px}
button{font:inherit;color:inherit}
a{color:var(--neon)}
svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}

/* top bar */
.bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;padding:max(10px,env(safe-area-inset-top)) 16px 10px;
  background:rgba(18,8,40,.92);backdrop-filter:blur(10px);border-bottom:1px solid rgba(58,36,130,.6)}
.ibtn{width:46px;height:46px;flex:none;display:grid;place-items:center;border-radius:14px;border:1px solid var(--line);background:var(--surf);color:var(--ink);text-decoration:none;cursor:pointer}
.bar__title{flex:1;display:flex;flex-direction:column;align-items:center;line-height:1.15;text-align:center}
.bar__title b{font:600 1.35rem 'Fredoka',sans-serif}
.bar__title span{font-size:.85rem;color:var(--mute)}

main{max-width:760px;margin:0 auto;padding:18px 16px 0}
.loading,.empty{text-align:center;padding:60px 10px;font:600 1.25rem 'Fredoka',sans-serif;color:var(--mute)}

/* hero */
.hero{background:linear-gradient(160deg,#2b1466,#1a0c3d);border:1px solid var(--line);border-radius:26px;padding:22px 20px;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.kicker{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.92rem;color:var(--mute)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:99px;background:rgba(238,255,65,.12);border:1px solid rgba(238,255,65,.4);color:var(--neon);font-weight:800;font-size:.85rem}
.chip--long{background:rgba(255,79,184,.14);border-color:rgba(255,79,184,.5);color:#ffb3df}
.hero h1{margin:12px 0 6px;font:600 clamp(1.7rem,5vw,2.3rem)/1.15 'Fredoka',sans-serif}
.hero .passage{font:600 1.1rem 'Fredoka',sans-serif;color:var(--neon)}
.bigidea{margin:14px 0 0;padding:12px 14px;border-left:4px solid var(--neon);background:rgba(0,0,0,.18);border-radius:0 12px 12px 0;font:500 1.12rem/1.5 'Lora',serif;font-style:italic}
.listen{margin-top:18px;display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.listen__btn{display:inline-flex;align-items:center;gap:10px;height:56px;padding:0 24px;border:0;border-radius:18px;background:var(--neon);color:var(--on-neon);font:700 1.2rem 'Fredoka',sans-serif;cursor:pointer;box-shadow:0 0 30px rgba(238,255,65,.25)}
.listen__btn svg{width:24px;height:24px;fill:currentColor;stroke:none}
.listen__meta{color:var(--mute);font-size:.95rem}
.next{margin:14px 0 0;padding:14px 16px;border-radius:18px;border:1px dashed var(--line);color:var(--mute);font-size:1rem}
.next b{color:var(--ink)}

/* article */
.article{margin-top:22px}
.block{background:var(--surf);border:1px solid var(--line);border-radius:22px;padding:18px 20px;margin-bottom:16px}
.block h2{margin:0 0 10px;font:600 1.35rem 'Fredoka',sans-serif;color:var(--neon)}
.reading summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;font:600 1.3rem 'Fredoka',sans-serif;color:var(--neon)}
.reading summary::-webkit-details-marker{display:none}
.reading summary::after{content:'＋';margin-left:auto;color:var(--mute)}
.reading[open] summary::after{content:'−'}
.verses{margin-top:12px;font:500 1.12rem/1.75 'Lora',serif}
.verses sup{font:800 .7rem 'Nunito',sans-serif;color:var(--mute);margin-right:3px}
.sermon h2{margin:26px 0 8px;font:600 1.4rem 'Fredoka',sans-serif;color:var(--neon)}
.sermon h2:first-child{margin-top:0}
.sermon p,.prayer p{margin:0 0 16px;font:500 1.17rem/1.8 'Lora',serif;color:#efe8ff}
.say{border-radius:10px;transition:background .3s,box-shadow .3s}
.say.now{background:rgba(238,255,65,.09);box-shadow:-10px 0 0 rgba(238,255,65,.09),10px 0 0 rgba(238,255,65,.09)}
.scripture{margin:4px 0 20px;padding:14px 18px;border-radius:16px;background:rgba(62,230,255,.07);border:1px solid rgba(62,230,255,.35);font:500 1.15rem/1.75 'Lora',serif;color:#f3fbff}
.scripture__ref{font:600 1rem 'Fredoka',sans-serif;color:var(--cyan);margin-bottom:6px}
.scripture sup{font:800 .7rem 'Nunito',sans-serif;color:var(--mute);margin-right:3px}
.links{display:flex;flex-wrap:wrap;gap:10px}
.link{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;border-radius:14px;border:1px solid var(--line);background:var(--surf2);cursor:pointer;text-align:left;max-width:100%}
.link b{font:600 1.05rem 'Fredoka',sans-serif;color:var(--cyan)}
.link span{font-size:.92rem;color:var(--mute)}
.questions ol{margin:0;padding-left:1.3em}
.questions li{margin-bottom:10px;font-size:1.1rem}
.prayer{background:linear-gradient(160deg,#2b1466,#1d0f42)}
.credit{margin:22px 0 0;text-align:center;color:var(--mute);font-size:.92rem}

/* archive */
.archive{margin-top:30px}
.archive h2{font:600 1.4rem 'Fredoka',sans-serif;margin:0 0 12px}
.arc{display:flex;align-items:center;gap:14px;padding:14px 16px;margin-bottom:10px;border-radius:18px;border:1px solid var(--line);background:var(--surf);color:var(--ink);text-decoration:none}
.arc.on{border-color:var(--neon)}
.arc__date{flex:none;width:60px;text-align:center;line-height:1.1;font:600 .85rem 'Fredoka',sans-serif;color:var(--mute)}
.arc__date b{display:block;font-size:1.5rem;color:var(--ink)}
.arc__txt{flex:1;min-width:0}
.arc__txt b{display:block;font:600 1.1rem 'Fredoka',sans-serif}
.arc__txt span{font-size:.92rem;color:var(--mute)}
.arc__done{flex:none;color:var(--neon);font-weight:800;font-size:.85rem}

/* sticky player */
.player{position:fixed;left:0;right:0;bottom:0;z-index:8;padding:10px 14px max(12px,env(safe-area-inset-bottom));background:rgba(20,9,48,.97);border-top:1px solid var(--line);backdrop-filter:blur(10px)}
.player[hidden],.sheet[hidden]{display:none}
.player__row{max-width:760px;margin:0 auto;display:flex;align-items:center;gap:8px}
.pbtn{position:relative;flex:none;width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:var(--surf2);display:grid;place-items:center;cursor:pointer}
.pbtn small{position:absolute;bottom:3px;font:800 .6rem 'Nunito',sans-serif}
.pbtn--main{width:60px;height:60px;border:0;background:var(--neon);color:var(--on-neon)}
.pbtn--main svg{width:28px;height:28px;fill:currentColor;stroke:none}
.pbtn--speed{width:auto;min-width:52px;padding:0 10px;border-radius:14px;font:700 1rem 'Fredoka',sans-serif}
.player__info{flex:1;min-width:0}
.player__info b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:600 1rem 'Fredoka',sans-serif}
.player__time{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--mute);font-variant-numeric:tabular-nums}
.player__time input{flex:1;min-width:0;accent-color:var(--neon);height:28px}
.player__follow{display:block;max-width:760px;margin:4px auto 0;font-size:.85rem;color:var(--mute)}
@media (max-width:520px){.pbtn:not(.pbtn--main):not(.pbtn--speed){width:42px;height:42px}#backBtn{display:none}}

/* verse sheet */
.sheet{position:fixed;inset:0;z-index:10;background:rgba(8,3,20,.6);display:flex;align-items:flex-end;justify-content:center}
.sheet__card{width:min(620px,100%);max-height:85vh;display:flex;flex-direction:column;background:var(--surf);border:1px solid var(--line);border-radius:24px 24px 0 0;padding:14px 18px max(16px,env(safe-area-inset-bottom))}
@media (min-width:700px){.sheet{align-items:center}.sheet__card{border-radius:24px}}
.sheet__card header{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.sheet__card h2{flex:1;margin:0;font:600 1.35rem 'Fredoka',sans-serif;color:var(--cyan)}
.sheet__body{overflow-y:auto;font:500 1.12rem/1.75 'Lora',serif}
.sheet__body sup{font:800 .7rem 'Nunito',sans-serif;color:var(--mute);margin-right:3px}
.sheet__body .why{font:600 1rem 'Nunito',sans-serif;color:var(--mute);margin:0 0 10px}
.sheet__open{margin-top:12px;display:block;text-align:center;padding:12px;border-radius:14px;background:var(--surf2);border:1px solid var(--line);text-decoration:none;font-weight:800}
:focus-visible{outline:3px solid var(--neon);outline-offset:2px}

/* coffee note */
.coffee{display:flex;gap:14px;align-items:flex-start;margin-top:16px;padding:16px;border-radius:18px;background:rgba(238,255,65,.08);border:1px solid rgba(238,255,65,.35)}
.coffee__cup{font-size:2rem;line-height:1}
.coffee b{font:600 1.15rem 'Fredoka',sans-serif;color:var(--neon)}
.coffee p{margin:4px 0 10px;font-size:1rem}
.coffee__btn{height:44px;padding:0 16px;border-radius:14px;border:1px solid var(--neon);background:transparent;color:var(--neon);font:700 1rem 'Fredoka',sans-serif;cursor:pointer}

/* chat */
.chat-fab{position:fixed;right:16px;bottom:20px;z-index:7;display:flex;align-items:center;gap:8px;height:54px;padding:0 18px;border-radius:99px;border:0;
  background:var(--violet);color:#fff;font:700 1.05rem 'Fredoka',sans-serif;box-shadow:0 10px 30px rgba(0,0,0,.45);cursor:pointer}
.chat-fab--live::after{content:'LIVE';margin-left:2px;padding:2px 8px;border-radius:99px;background:var(--neon);color:var(--on-neon);font-size:.75rem}
.player:not([hidden]) ~ .chat-fab{bottom:120px}
.chat{position:fixed;top:0;right:0;bottom:0;z-index:9;width:min(400px,100%);display:flex;flex-direction:column;background:#160a35;border-left:1px solid var(--line);
  transform:translateX(105%);transition:transform .25s ease;box-shadow:-20px 0 50px rgba(0,0,0,.4)}
.chat-open .chat{transform:none}
.chat-open .chat-fab{display:none}
.chat__head{display:flex;align-items:center;gap:10px;padding:max(10px,env(safe-area-inset-top)) 14px 10px;border-bottom:1px solid var(--line)}
.chat__title{flex:1;min-width:0;line-height:1.2}
.chat__title b{display:block;font:600 1.2rem 'Fredoka',sans-serif}
.chat__title span{display:block;font-size:.85rem;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat__note{margin:10px 12px 0;padding:10px 12px;border-radius:14px;background:rgba(238,255,65,.08);border:1px solid rgba(238,255,65,.3);font-size:.95rem;line-height:1.45}
.chat__note b{color:var(--neon)}
.chat__note .live{color:#4dffb0}
.chat__list{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}
.chat__empty{margin:auto 0;text-align:center;color:var(--mute)}
.chat__gate{margin:auto 0;text-align:center;color:var(--mute)}
.chat__gate-icon{font-size:2.6rem}
.chat__gate b{color:var(--ink);font:600 1.2rem 'Fredoka',sans-serif}
.msg{display:flex;gap:10px;align-items:flex-start}
.msg__av{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--surf2);font-size:1.2rem}
.msg__body{flex:1;min-width:0;padding:8px 12px;border-radius:4px 16px 16px 16px;background:var(--surf)}
.msg--mine .msg__body{background:#2c1866}
.msg--host .msg__body{background:rgba(238,255,65,.1);border:1px solid rgba(238,255,65,.35)}
.msg__meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:.8rem;color:var(--mute)}
.msg__meta b{color:var(--ink);font-size:.95rem}
.msg__host{padding:1px 8px;border-radius:99px;background:var(--neon);color:var(--on-neon);font-weight:800;font-size:.7rem}
.msg__act{margin-left:auto;border:0;background:none;color:var(--mute);font-size:.75rem;cursor:pointer;padding:2px 4px}
.msg__act + .msg__act{margin-left:0}
.msg__text{margin-top:2px;font-size:1.02rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.chat__foot{padding:10px 12px max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--line)}
.chat__form{display:flex;gap:8px;align-items:flex-end}
.chat__form textarea{flex:1;min-height:48px;max-height:140px;resize:vertical;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:var(--surf);color:var(--ink);font:600 1rem 'Nunito',sans-serif}
.chat__send{flex:none;width:48px;height:48px;border-radius:14px;border:0;background:var(--neon);color:var(--on-neon);display:grid;place-items:center;cursor:pointer}
.chat__small{margin:6px 0 0;font-size:.82rem;color:var(--mute)}
.chat__btn{display:block;text-align:center;padding:12px;border-radius:14px;background:var(--neon);color:var(--on-neon);text-decoration:none;font:700 1.05rem 'Fredoka',sans-serif}

/* big screens: chat sits beside the sermon */
@media (min-width:1150px){
  .chat-open{padding-right:400px}
  .chat-open .chat{box-shadow:none}
  .chat-open .player{right:400px}
}

/* 18+ labels */
.chat-18{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:8px;background:var(--pink);color:#fff;font:800 .72rem/1.4 'Nunito',sans-serif;vertical-align:middle;letter-spacing:.02em}
.chat-fab .chat-18{margin-left:0}
.chat__adult{display:block;margin-top:6px;font-weight:800;color:#ffb3df}
.chat__18b{color:#ffb3df}
.coffee__adult{margin:-4px 0 10px!important;font-size:.92rem!important;color:#ffb3df}
.coffee__adult .chat-18{margin:0 4px 0 0}
.hero__img{display:block;width:calc(100% + 40px);height:180px;margin:-22px -20px 16px;object-fit:cover;object-position:center 30%;border-radius:26px 26px 0 0;opacity:.9}
