:root{
  --bg:#050816;
  --card:#0b1226;
  --card2:#0f1b3d;
  --text:#f9fafb;
  --muted:#9ca3af;
  --accent:#38bdf8;
  --danger:#fb7185;
  --ok:#34d399;
  --shadow: 0 10px 30px rgba(0,0,0,.35);
  --radius: 18px;
  --maxw: 980px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background: radial-gradient(1200px 700px at 10% 0%, #0a1b3a 0%, var(--bg) 60%);
  color:var(--text);
}
a{color:inherit; text-decoration:none}
.wrap{max-width:var(--maxw); margin:0 auto; padding:18px 14px 32px}
.topbar{
  position:sticky; top:0; z-index:20;
  backdrop-filter: blur(12px);
  background: rgba(5,8,22,.65);
  border-bottom: 1px solid rgba(56,189,248,.15);
}
.topbar .inner{max-width:var(--maxw); margin:0 auto; padding:12px 14px; display:flex; gap:12px; align-items:center; justify-content:space-between}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:inherit; cursor:pointer; border-radius:14px}
.brand:hover h1{color:#ffffff}
.brand:focus-visible{outline:2px solid rgba(56,189,248,.75); outline-offset:4px}
.logo{
  width:34px; height:34px; border-radius:12px;
  background: rgba(255,255,255,.04) url('/assets/logo.png') center/cover no-repeat;
  border: 1px solid rgba(56,189,248,.25);
  box-shadow: var(--shadow);
}
.brand h1{font-size:15px; margin:0; letter-spacing:.2px}
.nav{display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end}
.tab{
  padding:8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  font-size: 13px;
  color: var(--text);
}
.tab.active{
  border-color: rgba(56,189,248,.45);
  background: rgba(56,189,248,.10);
}
.card{
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.10);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.card .pad{padding:14px}
.kicker{color:var(--muted); font-size:13px}
.h2{margin:8px 0 0; font-size:20px; line-height:1.2}
.ctaRow{display:flex; gap:10px; flex-wrap:wrap; margin-top:12px}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:10px 12px;
  border-radius: 12px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.05);
  cursor:pointer;
  font-size: 13px;
}
.btn.primary{
  border-color: rgba(56,189,248,.45);
  background: rgba(56,189,248,.12);
}
.btn.danger{
  border-color: rgba(251,113,133,.45);
  background: rgba(251,113,133,.10);
}
.small{font-size:12px; color:var(--muted)}
.grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:10px;
}
@media (min-width: 640px){
  .grid{grid-template-columns: repeat(4, minmax(0,1fr));}
}
.tile{
  padding:12px;
  border-radius: 16px;
  background: rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.10);
  min-height: 88px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:8px;
}
.tile .top{display:flex; justify-content:space-between; gap:10px; align-items:flex-start}
.badge{
  font-size:12px;
  padding:4px 8px;
  border-radius: 999px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  color:var(--muted);
  white-space:nowrap;
}
.badge.ok{border-color: rgba(52,211,153,.35); background: rgba(52,211,153,.08); color: #bff7df}
.badge.lock{border-color: rgba(251,113,133,.35); background: rgba(251,113,133,.08); color: #ffd0d8}
.titleLine{
  font-size:13px; line-height:1.15; color: var(--text);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient: vertical;
  overflow:hidden;
}
.dateLine{font-size:12px; color:var(--muted)}
/* Video */
.playerWrap{
  width:100%;
  background: #000;
  border-radius: 16px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
}
.player{
  position: relative;
  padding-top: 56.25%; /* 16:9 */
}
.player iframe, .player #ytplayer{
  position:absolute; inset:0;
  width:100%; height:100%;
}
.fullscreenHint{
  margin-top:10px;
  color: var(--muted);
  font-size: 12px;
}
.footer{
  margin-top:20px;
  color: var(--muted);
  font-size: 12px;
  text-align:center;
}
.formRow{display:flex; flex-direction:column; gap:6px; margin-bottom:10px}
input, select, textarea{
  width:100%;
  padding:10px 12px;
  border-radius: 12px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.20);
  color: var(--text);
  outline:none;
}
label{font-size:12px; color: var(--muted)}
.notice{
  padding:10px 12px;
  border-radius: 12px;
  border:1px solid rgba(56,189,248,.35);
  background: rgba(56,189,248,.10);
  color: #d7f1ff;
  font-size: 13px;
}
.error{
  padding:10px 12px;
  border-radius: 12px;
  border:1px solid rgba(251,113,133,.35);
  background: rgba(251,113,133,.10);
  color: #ffd0d8;
  font-size: 13px;
}

.btn.disabled{opacity:.45; pointer-events:auto;}



.admin-page label{
  font-size:16px;
  font-weight:600;
}

.admin-page select,
.admin-page input,
.admin-page textarea{
  font-size:18px;
  padding:14px 16px;
  border-radius:14px;
}

.admin-page option{
  font-size:18px;
}

.admin-page .btn{
  font-size:16px;
  padding:12px 18px;
}

@media (max-width: 640px){
  .admin-page select,
  .admin-page input,
  .admin-page textarea{
    font-size:19px;
  }
}

/* ===============================
   Admin – LARGE & EASY TO READ
   =============================== */
.admin-page{
  font-size: 18px;
}

.admin-page label{
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.2px;
  margin-bottom: 6px;
}

.admin-page select,
.admin-page input,
.admin-page textarea{
  font-size: 22px;
  padding: 18px 20px;
  border-radius: 16px;
  line-height: 1.4;
}

.admin-page option{
  font-size: 22px;
}

.admin-page .formRow{
  margin-bottom: 22px;
}

.admin-page .btn{
  font-size: 20px;
  padding: 14px 22px;
  border-radius: 16px;
}

/* Mobile / Tablet: even bigger */
@media (max-width: 768px){
  .admin-page select,
  .admin-page input,
  .admin-page textarea{
    font-size: 24px;
    padding: 20px 22px;
  }

  .admin-page .btn{
    font-size: 22px;
    padding: 16px 24px;
  }
}

/* Ensure Fullscreen button text is white */
.btn.primary{ color:#ffffff; }

.footer a{color: var(--accent); text-decoration:none;}
.footer a:hover{text-decoration:underline;}

.tile.locked{opacity:.55; cursor:not-allowed;}




.metaLine{
  margin-top:6px;
  font-size:13px;
  opacity:.75;
}


.metaLine{
  margin-top: 6px;
  font-size: 13px;
  opacity: .75;
}




.lockedOverlay{
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(0,0,0,.6);
  z-index: 9999;
}
.lockedOverlay.open{ display:flex; }

.lockedCard{
  width: min(520px, 100%);
  background: rgba(12,18,32,.96);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  padding: 18px;
  box-shadow: 0 20px 60px rgba(0,0,0,.45);
}
.lockedHeader{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.lockedTitle{
  font-size: 18px;
  font-weight: 800;
}
.lockedClose{
  appearance:none;
  border:0;
  background: rgba(255,255,255,.08);
  color: #fff;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  cursor:pointer;
}
.lockedClose:hover{ background: rgba(255,255,255,.14); }

.lockedMessage{
  font-size: 16px;
  line-height: 1.4;
  opacity: .92;
  margin-bottom: 14px;
}

#lockMsg,#lockOk,#lockTitle{display:none !important;}

/* Safety: never render legacy lock UI fragments */
#lockModal,#lockedOverlay,#lockMsg,#lockOk,#lockTitle,#lockedMessage,#lockedClose,#lockedOk,#lockedTitle{display:none !important;}


.player{position:relative;padding-top:56.25%;width:100%;}
.videoShell{position:absolute;inset:0;width:100%;height:100%;background:#000;}
.videoShell iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.videoPoster{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:#000;cursor:pointer;display:block;}
.videoPoster img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center;}
.playBtn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:84px;height:84px;border-radius:999px;background:rgba(0,0,0,.62);color:#fff;font-size:34px;line-height:1;box-shadow:0 10px 30px rgba(0,0,0,.35);}
.videoPoster:hover .playBtn,.videoPoster:focus-visible .playBtn{transform:translate(-50%,-50%) scale(1.05);}
.videoPoster:focus-visible{outline:2px solid rgba(56,189,248,.8);outline-offset:-4px;}
.playerNoticeWrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;}
.videoShell.is-loading::before{content:"Loading video…";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;background:rgba(0,0,0,.35);z-index:3;}


/* Click-to-play YouTube player */
.player{
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  padding-top: 0;
}
.player iframe,
.player #ytplayer,
.rt-video-shell,
.rt-video-poster,
.rt-video-thumb{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.rt-video-shell{
  display: block;
  background: #000;
}
.rt-video-poster{
  appearance: none;
  border: 0;
  padding: 0;
  margin: 0;
  display: block;
  cursor: pointer;
  background: #000;
}
.rt-video-thumb{
  object-fit: cover;
  display: block;
}
.rt-video-shade{
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.35), rgba(0,0,0,.08));
}
.rt-video-play{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 78px;
  height: 54px;
  border-radius: 18px;
  background: rgba(255,255,255,.92);
  color: #111827;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  line-height: 1;
  box-shadow: 0 10px 30px rgba(0,0,0,.30);
}
.rt-video-poster:hover .rt-video-play,
.rt-video-poster:focus-visible .rt-video-play{
  transform: translate(-50%, -50%) scale(1.04);
}
.rt-video-poster:focus-visible{
  outline: 3px solid rgba(56,189,248,.7);
  outline-offset: -3px;
}

.videoPosterLabel{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);padding:8px 12px;border-radius:999px;background:rgba(0,0,0,.62);color:#fff;font-size:13px;line-height:1;white-space:nowrap;}

.playerNoticeWrap{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
}

.videoShell{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  background:#000;
}

.videoPoster{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  border:0;
  padding:0;
  background:#000;
  cursor:pointer;
}

.videoPoster img,
.nativePlayer{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#000;
}

.videoPoster img{display:block;}

.playBtn{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  width:72px;
  height:72px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.62);
  color:#fff;
  font-size:30px;
  box-shadow:0 10px 30px rgba(0,0,0,.35);
}

.videoPosterLabel{
  position:absolute;
  right:14px;
  bottom:14px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(0,0,0,.62);
  color:#fff;
  font-size:14px;
}

.nativePlayer{
  display:block;
}

.player iframe{
  background:#000;
}

.playerNoticeWrap{position:absolute; inset:0; display:grid; place-items:center; padding:16px;}
.nativePlayer{position:absolute; inset:0; width:100%; height:100%; background:#000;}
.videoShell,.videoPoster{position:absolute; inset:0; width:100%; height:100%;}
.videoPoster{border:0; padding:0; background:#000; color:#fff; cursor:pointer;}
.videoPoster img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.playBtn{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:74px; height:74px; border-radius:999px; display:grid; place-items:center; background:rgba(0,0,0,.55); border:1px solid rgba(255,255,255,.25); font-size:30px; padding-left:4px;}
.videoPosterLabel{position:absolute; left:50%; bottom:18px; transform:translateX(-50%); background:rgba(0,0,0,.55); padding:8px 12px; border-radius:999px; font-size:13px;}
.immersiveOverlay{position:fixed; inset:0; z-index:10000; background:#000; display:block; padding-top:env(safe-area-inset-top,0); padding-bottom:env(safe-area-inset-bottom,0);}
.immersiveOverlay[hidden]{display:none !important;}
.overlayStage{position:absolute; inset:0; background:#000;}
.overlayStage iframe,.overlayStage #rtYtMount,.overlayStage #rtYtMount iframe{position:absolute !important; inset:0; width:100% !important; height:100% !important; border:0;}
.overlayMeta{position:absolute; left:14px; right:70px; top:max(14px, env(safe-area-inset-top,0)); z-index:2; color:#fff; font-size:14px; text-shadow:0 2px 10px rgba(0,0,0,.65);}
.overlayClose{position:absolute; right:14px; top:max(14px, env(safe-area-inset-top,0)); z-index:3; width:44px; height:44px; border-radius:999px; border:1px solid rgba(255,255,255,.2); background:rgba(0,0,0,.55); color:#fff; font-size:22px;}
body.overlay-open{overflow:hidden;}


:root{--rt-vh:100vh;}
html.overlay-open, body.overlay-open{height:var(--rt-vh); overflow:hidden; overscroll-behavior:none;}
body.native-fullscreen-active{background:#000;}
.playerNoticeWrap{position:absolute; inset:0; display:grid; place-items:center; padding:16px;}
.nativePlayer{position:absolute; inset:0; width:100%; height:100%; background:#000;}
.videoShell,.videoPoster{position:absolute; inset:0; width:100%; height:100%;}
.videoPoster{border:0; padding:0; background:#000; color:#fff; cursor:pointer; -webkit-appearance:none; appearance:none;}
.videoPoster img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.playBtn{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:74px; height:74px; border-radius:999px; display:grid; place-items:center; background:rgba(0,0,0,.55); border:1px solid rgba(255,255,255,.25); font-size:30px; padding-left:4px;}
.videoPosterLabel{position:absolute; left:50%; bottom:18px; transform:translateX(-50%); background:rgba(0,0,0,.55); padding:8px 12px; border-radius:999px; font-size:13px;}
.immersiveOverlay{position:fixed; left:0; top:0; width:100vw; height:var(--rt-vh); min-height:-webkit-fill-available; z-index:10000; background:#000; display:block; padding-top:env(safe-area-inset-top,0); padding-bottom:env(safe-area-inset-bottom,0); padding-left:env(safe-area-inset-left,0); padding-right:env(safe-area-inset-right,0);}
.immersiveOverlay[hidden]{display:none !important;}
.overlayStage{position:absolute; inset:0; background:#000;}
.overlayStage iframe,.overlayStage #rtYtMount,.overlayStage #rtYtMount iframe{position:absolute !important; inset:0; width:100% !important; height:100% !important; border:0; background:#000;}
.overlayMeta{position:absolute; left:max(14px, env(safe-area-inset-left,0)); right:70px; top:max(14px, env(safe-area-inset-top,0)); z-index:2; color:#fff; font-size:14px; text-shadow:0 2px 10px rgba(0,0,0,.65);}
.overlayClose{position:absolute; right:max(14px, env(safe-area-inset-right,0)); top:max(14px, env(safe-area-inset-top,0)); z-index:3; width:44px; height:44px; border-radius:999px; border:1px solid rgba(255,255,255,.2); background:rgba(0,0,0,.55); color:#fff; font-size:22px; -webkit-appearance:none; appearance:none;}
body.overlay-open{overflow:hidden; touch-action:none;}
@supports (height: 100dvh){.immersiveOverlay{height:100dvh;}}
@media (orientation: landscape) and (max-width: 1024px){
  .immersiveOverlay{height:var(--rt-vh);}
  .overlayMeta{font-size:13px;}
}

.overlayNativeVideo{position:absolute; inset:0; width:100%; height:100%; background:#000; object-fit:contain;}
.immersiveOverlay{height:var(--rt-vh,100dvh); min-height:100dvh; min-height:-webkit-fill-available;}
html.overlay-open, body.overlay-open{overscroll-behavior:none;}


.overlayFauxExit{position:absolute; right:max(14px, env(safe-area-inset-right,0)); bottom:max(18px, calc(env(safe-area-inset-bottom,0) + 12px)); z-index:4; width:52px; height:52px; border:1px solid rgba(255,255,255,.24); border-radius:999px; background:rgba(0,0,0,.52); color:#fff; display:grid; place-items:center; font-size:24px; line-height:1; -webkit-appearance:none; appearance:none; backdrop-filter:blur(2px);}
.overlayFauxExit[hidden]{display:none !important;}
.overlayFauxExit:active{transform:scale(.98);}
.overlayNativeVideo::-webkit-media-controls-fullscreen-button{display:none !important;}

.overlayNativeExitHotspot{position:absolute;right:max(8px, calc(env(safe-area-inset-right,0) + 2px));bottom:max(6px, calc(env(safe-area-inset-bottom,0) + 2px));z-index:6;width:68px;height:56px;border:0;border-radius:18px;background:rgba(0,0,0,.001);color:transparent;-webkit-appearance:none;appearance:none;touch-action:manipulation;}
.overlayNativeExitHotspot[hidden]{display:none !important;}
.overlayNativeExitGlyph{position:absolute;right:10px;bottom:8px;width:34px;height:34px;border-radius:999px;display:grid;place-items:center;background:rgba(70,70,70,.40);color:#fff;font-size:18px;line-height:1;pointer-events:none;backdrop-filter:blur(1px);}
.overlayNativeExitHotspot:active .overlayNativeExitGlyph{transform:scale(.97);}


.watchLayout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,.9fr);gap:14px;align-items:start}
.homeLayout{margin-bottom:8px}
.upNext{position:sticky;top:78px}
.railList{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.railItem{display:grid;grid-template-columns:160px 1fr;gap:10px;align-items:start;padding:8px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08)}
.railThumb{position:relative;aspect-ratio:16/9;background:#000;border-radius:12px;overflow:hidden}
.railThumb img{display:block;width:100%;height:100%;object-fit:cover}
.railThumb.is-locked img{filter:brightness(.7)}
.thumbDateBox{position:absolute;top:8px;left:8px;right:8px;display:flex;justify-content:center;pointer-events:none}
.thumbDateBox span{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 10px;border-radius:18px;background:rgba(255,255,255,.92);color:#08142f;font-weight:900;font-size:12px;line-height:1.15;text-transform:uppercase;letter-spacing:.15px;max-width:100%;text-align:center;box-shadow:0 4px 18px rgba(0,0,0,.18)}
.thumbStatusPill{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:4px 10px;border-radius:18px;background:rgba(8,20,47,.92);color:#fff;font-weight:800;font-size:9px;line-height:1.05;text-transform:uppercase;letter-spacing:.5px;text-align:center;max-width:calc(100% - 18px);min-width:96px;box-shadow:0 6px 20px rgba(0,0,0,.28)}
.railTitle{font-size:14px;line-height:1.2;font-weight:600}
.lockedPlayer{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;background:#000}
.lockedPlayerBg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(6px) brightness(.35);transform:scale(1.06)}
.lockedPlayerShade{position:absolute;inset:0;background:rgba(0,0,0,.18)}
.lockedPlayerContent{position:relative;z-index:1;text-align:center;padding:18px}
.lockedPlayerTitle{font-size:clamp(34px,5.5vw,76px);line-height:.98;font-weight:900;letter-spacing:-.03em;color:#fff;text-transform:uppercase}
.lockedPlayerDate{margin-top:18px;font-size:clamp(22px,3.2vw,46px);line-height:1.05;font-weight:800;color:#dcebff}
.adminList{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.adminItem{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08)}
@media (max-width: 900px){
  .watchLayout{grid-template-columns:1fr}
  .upNext{position:static}
}


/* --- v2 patch: auth, comments, sidebar scroll, subtitles --- */

.userChip{display:inline-flex;align-items:center;padding:8px 10px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);font-size:13px}
.authCard{max-width:560px;margin:0 auto}
.commentsCard{margin-top:0}
.commentHeader{display:flex;justify-content:space-between;align-items:center;gap:12px}
.commentCount{font-size:14px;color:var(--muted)}
.commentForm textarea{min-height:110px;resize:vertical}
.commentPrompt{padding:12px 0}
.commentList{display:flex;flex-direction:column;gap:12px;margin-top:16px}
.commentItem{padding:14px;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08)}
.commentHead{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:13px;color:var(--muted);margin-bottom:8px}
.commentBody p{margin:0 0 10px 0;line-height:1.5}
.commentBody p:last-child{margin-bottom:0}
.emptyState{padding:14px;border-radius:14px;background:rgba(255,255,255,.03);border:1px dashed rgba(255,255,255,.12);color:var(--muted)}
.sideTitle{font-size:18px}
.scrollRail{max-height:72vh;overflow-y:auto;padding-right:4px}
.scrollRail::-webkit-scrollbar{width:10px}
.scrollRail::-webkit-scrollbar-thumb{background:rgba(255,255,255,.16);border-radius:999px}
.railKicker{font-size:12px;color:var(--accent);margin-bottom:4px;font-weight:600}
.upNext .small{line-height:1.35}
@media (max-width:900px){.scrollRail{max-height:none;overflow:visible}}


.footerAdminLink{
  font-size:12px;
  opacity:.8;
}
.footerAdminLink:hover{
  opacity:1;
}

/* stronger overlay exit */
.overlayFauxExit{
  position: fixed;
  top: max(14px, env(safe-area-inset-top));
  right: max(14px, env(safe-area-inset-right));
  width: 48px;
  height: 48px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(5,8,22,.78);
  color: #fff;
  font-size: 26px;
  line-height: 1;
  z-index: 10003;
  cursor: pointer;
  box-shadow: 0 10px 28px rgba(0,0,0,.35);
}
.overlayNativeExitHotspot{
  position: fixed;
  top: max(14px, env(safe-area-inset-top));
  left: max(14px, env(safe-area-inset-left));
  width: 56px;
  height: 56px;
  border-radius: 999px;
  border: 0;
  background: transparent;
  color: transparent;
  z-index: 10002;
}
.overlayMeta{
  padding-top: 72px;
}


/* Mobile fullscreen controls */
@media (max-width: 900px) {
  .immersiveOverlay {
    background: #000 !important;
  }

  .overlayStage {
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .overlayStage iframe,
  .overlayStage video {
    width: 100vw !important;
    height: 100dvh !important;
    border: 0 !important;
    max-width: none !important;
    max-height: none !important;
  }

  .overlayFauxExit {
    position: fixed !important;
    top: max(10px, env(safe-area-inset-top)) !important;
    right: max(10px, env(safe-area-inset-right)) !important;
    width: 56px !important;
    height: 56px !important;
    border-radius: 999px !important;
    background: rgba(8, 10, 18, .84) !important;
    border: 1px solid rgba(255,255,255,.24) !important;
    color: #fff !important;
    z-index: 10020 !important;
    font-size: 30px !important;
    font-weight: 700 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    -webkit-tap-highlight-color: transparent !important;
    touch-action: manipulation !important;
    box-shadow: 0 8px 28px rgba(0,0,0,.35) !important;
  }

  .overlayMeta {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    top: auto !important;
    z-index: 10015 !important;
    padding:
      14px
      max(14px, env(safe-area-inset-right))
      max(16px, calc(env(safe-area-inset-bottom) + 12px))
      max(14px, env(safe-area-inset-left)) !important;
    background: linear-gradient(to top, rgba(0,0,0,.92), rgba(0,0,0,.62), rgba(0,0,0,0)) !important;
    pointer-events: none !important;
  }

  .overlayMeta .overlayTitle,
  .overlayMeta .overlaySubtitle,
  .overlayMeta .overlayActions,
  .overlayMeta .overlayNextHint {
    pointer-events: auto !important;
  }

  .overlayActions {
    display: flex !important;
    gap: 10px !important;
    margin-top: 10px !important;
    flex-wrap: wrap !important;
  }

  .overlayActionBtn {
    min-height: 46px !important;
    padding: 10px 14px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    background: rgba(255,255,255,.10) !important;
    color: #fff !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .overlayNextHint {
    display: inline-flex !important;
    margin-top: 10px !important;
    padding: 8px 12px !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.12) !important;
    color: #fff !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
  }

  .rail,
  .sideRail,
  .watchSidebar,
  .upNextRail {
    max-height: 62dvh !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: 22px !important;
  }
}


/* YouTube-like mobile/video overlay patch */
html.overlay-open,
body.overlay-open{
  overflow:hidden !important;
  touch-action:none;
}

.immersiveOverlay{
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  height:100dvh !important;
  background:#000 !important;
  z-index:10000 !important;
}

.immersiveOverlay[hidden]{display:none !important;}

.overlayStage{
  position:absolute !important;
  inset:0 !important;
  background:#000 !important;
}

.overlayStage #rtYtPlayer,
.overlayStage #rtYtPlayer iframe{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  border:0 !important;
}

.overlayFauxExit{
  position:absolute !important;
  top:max(14px, env(safe-area-inset-top)) !important;
  right:max(14px, env(safe-area-inset-right)) !important;
  width:52px !important;
  height:52px !important;
  border-radius:999px !important;
  border:1px solid rgba(255,255,255,.18) !important;
  background:rgba(0,0,0,.68) !important;
  color:#fff !important;
  z-index:10020 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:28px !important;
  cursor:pointer !important;
  -webkit-tap-highlight-color:transparent;
}

.overlayMeta{
  position:absolute !important;
  left:max(14px, env(safe-area-inset-left)) !important;
  right:max(14px, env(safe-area-inset-right)) !important;
  bottom:max(14px, env(safe-area-inset-bottom)) !important;
  top:auto !important;
  z-index:10010 !important;
  color:#fff !important;
  pointer-events:none;
}

.overlayTitle,
.overlaySubtitle,
.overlayActions,
.overlayNextHint{
  pointer-events:auto;
}

.overlayTitle{
  font-size:18px !important;
  font-weight:800 !important;
  line-height:1.2 !important;
  text-shadow:0 2px 10px rgba(0,0,0,.75);
}

.overlaySubtitle{
  margin-top:6px !important;
  color:rgba(255,255,255,.82) !important;
  font-size:13px !important;
}

.overlayActions{
  display:flex !important;
  gap:10px !important;
  margin-top:12px !important;
  flex-wrap:wrap !important;
}

.overlayActionBtn{
  min-height:44px !important;
  padding:10px 14px !important;
  border-radius:999px !important;
  border:1px solid rgba(255,255,255,.18) !important;
  background:rgba(0,0,0,.68) !important;
  color:#fff !important;
  font-weight:700 !important;
  cursor:pointer !important;
}

.overlayNextHint{
  display:inline-flex !important;
  margin-top:10px !important;
  padding:8px 12px !important;
  border-radius:999px !important;
  background:rgba(0,0,0,.55) !important;
  color:#fff !important;
  font-size:13px !important;
}

.railItem.is-current{
  outline:2px solid rgba(56,189,248,.55);
  background:rgba(56,189,248,.08);
}

@media (max-width: 900px){
  .watchLayout{grid-template-columns:1fr !important;}
  .upNext{order:2;}
  .overlayTitle{font-size:16px !important;}
  .overlayActionBtn{min-height:46px !important;}
  .scrollRail{
    max-height:52vh !important;
    overflow:auto !important;
    -webkit-overflow-scrolling:touch;
  }
}


/* Grid subtitle + fullscreen helpers */
.tileSub{margin-top:8px;font-size:14px;line-height:1.3;color:#d7def0;font-weight:600;display:block;}

.overlayTapFullscreen{
  position: absolute;
  left: 50%;
  top: max(18px, env(safe-area-inset-top));
  transform: translateX(-50%);
  z-index: 10018;
  min-height: 40px;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.62);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  box-shadow: 0 8px 24px rgba(0,0,0,.28);
  -webkit-tap-highlight-color: transparent;
}
.overlayTapFullscreen[hidden]{display:none !important;}
.overlayActionBtn[hidden]{display:none !important;}

@media (max-width: 900px){
  .tileSub{ font-size: 12px; }
  .overlayTapFullscreen{
    top: max(14px, env(safe-area-inset-top));
    max-width: calc(100vw - 92px);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

#overlayFullscreenBtn,
#overlayTapFullscreen{
  display: none !important;
}


.tileSub{
  margin-top: 8px !important;
  font-size: 14px !important;
  line-height: 1.3 !important;
  color: #d7def0 !important;
  font-weight: 600 !important;
  display: block !important;
  opacity: 1 !important;
}

.immersiveOverlay{
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  height: 100dvh !important;
  background: #000 !important;
  z-index: 10000 !important;
}

.overlayStage{
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: #000 !important;
}

.overlayStage #rtYtPlayer,
.overlayStage iframe{
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
}

@media (max-width: 900px){
  .tileSub{
    font-size: 13px !important;
  }
}


/* Hide subtitle on video player overlay only */
.overlaySubtitle{
  display: none !important;
}


/* Hide duplicate subtitle under the watch-page title, keep only the top kicker */
.watchSubtitle,
.videoSubtitle,
.playerSubtitle,
.watchHeader .small,
.watchHeader .muted,
.watchTitle + .small,
.watchTitle + .muted,
.h2 + .small{
  display: none !important;
}


@media (max-width: 560px){
  .railItem{grid-template-columns:138px 1fr;}
  .thumbDateBox span{min-height:26px;padding:3px 9px;font-size:11px;line-height:1.1;}
  .thumbStatusPill{min-height:22px;padding:3px 9px;font-size:8px;min-width:88px;}
}



.overlayNotReady{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:center/cover no-repeat #000;
}
.overlayNotReadyBackdrop{
  position:absolute;
  inset:0;
  background:linear-gradient(rgba(10,10,12,.72), rgba(10,10,12,.72));
  backdrop-filter:blur(8px);
}
.overlayNotReadyModal{
  position:relative;
  z-index:2;
  width:min(92vw, 760px);
  padding:28px 26px;
  border-radius:28px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(17,23,36,.78);
  box-shadow:0 18px 60px rgba(0,0,0,.4);
  text-align:center;
}
.overlayNotReadyEyebrow{
  color:#dcecff;
  opacity:.9;
  font-weight:700;
  font-size:clamp(14px,2vw,20px);
  margin-bottom:12px;
}
.overlayNotReadyTitle{
  color:#fff;
  font-weight:900;
  font-size:clamp(42px,8vw,96px);
  line-height:.95;
  letter-spacing:-0.03em;
}
.overlayNotReadyDate{
  margin-top:18px;
  color:#dcecff;
  font-weight:800;
  font-size:clamp(24px,4.8vw,56px);
  line-height:1.05;
}


/* Mobile playback overlay controls: hide while video plays, tap bottom-left to show */
.overlayWakeZone{
  position:fixed !important;
  left:max(0px, env(safe-area-inset-left)) !important;
  bottom:max(0px, env(safe-area-inset-bottom)) !important;
  width:min(42vw, 230px) !important;
  height:min(34vh, 190px) !important;
  z-index:10012 !important;
  border:0 !important;
  padding:0 !important;
  margin:0 !important;
  background:transparent !important;
  color:transparent !important;
  -webkit-appearance:none !important;
  appearance:none !important;
  -webkit-tap-highlight-color:transparent !important;
  touch-action:manipulation !important;
}
.overlayWakeZone[hidden]{display:none !important;}

.immersiveOverlay.overlay-controls-hidden .overlayMeta,
.immersiveOverlay.overlay-controls-hidden .overlayFauxExit,
.immersiveOverlay.overlay-controls-hidden .overlayTapFullscreen,
.immersiveOverlay.overlay-controls-hidden .overlayNativeExitHotspot{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

.immersiveOverlay.overlay-controls-visible .overlayMeta,
.immersiveOverlay.overlay-controls-visible .overlayFauxExit{
  opacity:1 !important;
  visibility:visible !important;
}

/* Keep YouTube native controls usable: no full-width shaded layer over the bottom controls. */
.immersiveOverlay.overlay-controls-hidden .overlayMeta{
  background:transparent !important;
}
.immersiveOverlay.overlay-controls-visible .overlayMeta{
  pointer-events:none !important;
  background:transparent !important;
}
.immersiveOverlay.overlay-controls-visible .overlayActions,
.immersiveOverlay.overlay-controls-visible .overlayActionBtn,
.immersiveOverlay.overlay-controls-visible .overlayNextHint,
.immersiveOverlay.overlay-controls-visible .overlayTitle{
  pointer-events:auto !important;
}

@media (max-width:900px){
  .immersiveOverlay.overlay-controls-visible .overlayMeta{
    background:transparent !important;
  }
}


/* Overlay control timing patch: 3-second controls, bottom-left wake only, no YouTube fullscreen blocking */
.overlayDismissZone{
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  top:0 !important;
  /* Leave YouTube's native bottom controls/fullscreen button completely clear. */
  bottom:max(96px, calc(env(safe-area-inset-bottom,0px) + 86px)) !important;
  z-index:10009 !important;
  border:0 !important;
  padding:0 !important;
  margin:0 !important;
  background:transparent !important;
  color:transparent !important;
  opacity:1 !important;
  -webkit-appearance:none !important;
  appearance:none !important;
  -webkit-tap-highlight-color:transparent !important;
  touch-action:manipulation !important;
}
.overlayDismissZone[hidden]{display:none !important;}

.immersiveOverlay.overlay-controls-hidden .overlayDismissZone,
.immersiveOverlay.overlay-controls-hidden .overlayActionBtn,
.immersiveOverlay.overlay-controls-hidden .overlayActions,
.immersiveOverlay.overlay-controls-hidden .overlayNextHint,
.immersiveOverlay.overlay-controls-hidden .overlayTitle,
.immersiveOverlay.overlay-controls-hidden .overlayFauxExit{
  pointer-events:none !important;
}

.immersiveOverlay.overlay-controls-visible .overlayWakeZone{
  display:none !important;
  pointer-events:none !important;
}

.immersiveOverlay.overlay-controls-hidden .overlayWakeZone{
  display:block !important;
  pointer-events:auto !important;
}

/* Buttons only receive taps while visible; the YouTube native fullscreen area remains uncovered. */
.immersiveOverlay.overlay-controls-visible .overlayFauxExit,
.immersiveOverlay.overlay-controls-visible .overlayActionBtn{
  pointer-events:auto !important;
}


/* Android Chrome fullscreen exit fix: visible bottom-right exit only while River Thoughts controls show.
   It is hidden/pointerless while controls are hidden, so YouTube's native fullscreen button stays usable. */
.overlayNativeExitHotspot{
  position:fixed !important;
  right:max(12px, calc(env(safe-area-inset-right,0px) + 10px)) !important;
  bottom:max(12px, calc(env(safe-area-inset-bottom,0px) + 10px)) !important;
  top:auto !important;
  left:auto !important;
  z-index:10050 !important;
  width:56px !important;
  height:56px !important;
  border-radius:999px !important;
  border:1px solid rgba(255,255,255,.24) !important;
  background:rgba(0,0,0,.68) !important;
  color:#fff !important;
  display:grid !important;
  place-items:center !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  -webkit-tap-highlight-color:transparent !important;
  touch-action:manipulation !important;
}
.overlayNativeExitGlyph{color:#fff !important;font-size:28px !important;line-height:1 !important;font-weight:700 !important;}
.immersiveOverlay.overlay-controls-hidden .overlayNativeExitHotspot{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
.immersiveOverlay.overlay-controls-visible .overlayNativeExitHotspot{
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
}
@media (max-width:900px){
  .overlayFauxExit{display:none !important;}
}


/* FINAL playback polish: YouTube-like mobile controls without blocking YouTube native fullscreen.
   - River controls live top/left, not over YouTube's bottom-right fullscreen button.
   - Hidden controls cannot receive phantom taps.
   - Bottom-left wake zone is the only hidden overlay tap target. */
.overlayNativeExitHotspot{
  display:none !important;
  pointer-events:none !important;
  visibility:hidden !important;
  opacity:0 !important;
}

.overlayFauxExit{
  display:flex !important;
  position:fixed !important;
  top:max(12px, calc(env(safe-area-inset-top,0px) + 8px)) !important;
  right:max(12px, calc(env(safe-area-inset-right,0px) + 8px)) !important;
  bottom:auto !important;
  left:auto !important;
  z-index:10050 !important;
}

.overlayMeta{
  position:fixed !important;
  top:max(12px, calc(env(safe-area-inset-top,0px) + 8px)) !important;
  left:max(12px, calc(env(safe-area-inset-left,0px) + 8px)) !important;
  right:max(78px, calc(env(safe-area-inset-right,0px) + 78px)) !important;
  bottom:auto !important;
  z-index:10030 !important;
  background:transparent !important;
  pointer-events:none !important;
}

.overlayActions{
  justify-content:flex-start !important;
  max-width:min(560px, calc(100vw - 110px)) !important;
}

.overlayActionBtn{
  pointer-events:auto !important;
  touch-action:manipulation !important;
}

/* Never place our dismiss layer over YouTube's bottom control bar. */
.overlayDismissZone{
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  top:0 !important;
  bottom:max(118px, calc(env(safe-area-inset-bottom,0px) + 108px)) !important;
  z-index:10008 !important;
  background:transparent !important;
}

/* Hidden mode: absolutely no phantom clicks except the deliberate bottom-left wake zone. */
.immersiveOverlay.overlay-controls-hidden .overlayMeta,
.immersiveOverlay.overlay-controls-hidden .overlayFauxExit,
.immersiveOverlay.overlay-controls-hidden .overlayActionBtn,
.immersiveOverlay.overlay-controls-hidden .overlayActions,
.immersiveOverlay.overlay-controls-hidden .overlayNextHint,
.immersiveOverlay.overlay-controls-hidden .overlayTitle,
.immersiveOverlay.overlay-controls-hidden .overlaySubtitle,
.immersiveOverlay.overlay-controls-hidden .overlayDismissZone{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

.immersiveOverlay.overlay-controls-visible .overlayMeta,
.immersiveOverlay.overlay-controls-visible .overlayFauxExit{
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:none !important;
}

.immersiveOverlay.overlay-controls-visible .overlayFauxExit,
.immersiveOverlay.overlay-controls-visible .overlayActionBtn,
.immersiveOverlay.overlay-controls-visible .overlayActions,
.immersiveOverlay.overlay-controls-visible .overlayNextHint,
.immersiveOverlay.overlay-controls-visible .overlayTitle,
.immersiveOverlay.overlay-controls-visible .overlaySubtitle{
  pointer-events:auto !important;
}

.immersiveOverlay.overlay-controls-hidden .overlayWakeZone{
  display:block !important;
  pointer-events:auto !important;
  opacity:1 !important;
  visibility:visible !important;
}

.immersiveOverlay.overlay-controls-visible .overlayWakeZone{
  display:none !important;
  pointer-events:none !important;
}

@media (max-width:900px){
  .overlayTitle{font-size:15px !important; max-width:calc(100vw - 120px) !important; white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important;}
  .overlaySubtitle,.overlayNextHint{display:none !important;}
  .overlayActions{gap:8px !important; max-width:calc(100vw - 112px) !important;}
  .overlayActionBtn{min-height:42px !important; padding:9px 12px !important; font-size:13px !important;}
}

/* FINAL patch: YouTube-style tap behaviour + seamless next-video fullscreen.
   The transparent tap layer is active above the YouTube control bar only:
   - 1st tap shows River Thoughts overlay controls
   - 2nd tap pauses the video
   - YouTube's native bottom controls/fullscreen button stay unblocked */
.overlayDismissZone{
  display:block !important;
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  top:0 !important;
  bottom:max(118px, calc(env(safe-area-inset-bottom,0px) + 108px)) !important;
  z-index:10008 !important;
  background:transparent !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  border:0 !important;
  padding:0 !important;
  margin:0 !important;
  -webkit-tap-highlight-color:transparent !important;
  touch-action:manipulation !important;
}
.overlayDismissZone[hidden]{display:block !important;}
.immersiveOverlay.overlay-controls-hidden .overlayDismissZone,
.immersiveOverlay.overlay-controls-visible .overlayDismissZone{
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
}
/* Overlay controls remain non-clickable while hidden, avoiding phantom taps. */
.immersiveOverlay.overlay-controls-hidden .overlayMeta,
.immersiveOverlay.overlay-controls-hidden .overlayFauxExit,
.immersiveOverlay.overlay-controls-hidden .overlayActionBtn,
.immersiveOverlay.overlay-controls-hidden .overlayActions,
.immersiveOverlay.overlay-controls-hidden .overlayNextHint,
.immersiveOverlay.overlay-controls-hidden .overlayTitle,
.immersiveOverlay.overlay-controls-hidden .overlaySubtitle{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
/* Keep bottom-left wake as a fallback, but the main tap layer handles normal first-tap behaviour. */
.immersiveOverlay.overlay-controls-hidden .overlayWakeZone{
  display:block !important;
  pointer-events:auto !important;
}

/* FINAL patch: second tap pause uses YouTube native controls.
   When paused by second tap, River Thoughts controls disappear and the YouTube iframe
   gets the screen back. Only the top part of the screen remains tappable to resume/exit
   native-control mode. The YouTube bottom bar/fullscreen button is never covered. */
.immersiveOverlay.youtube-native-mode .overlayMeta,
.immersiveOverlay.youtube-native-mode .overlayFauxExit,
.immersiveOverlay.youtube-native-mode .overlayWakeZone,
.immersiveOverlay.youtube-native-mode .overlayTapFullscreen,
.immersiveOverlay.youtube-native-mode .overlayNativeExitHotspot{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  display:none !important;
}
.immersiveOverlay.youtube-native-mode .overlayDismissZone{
  display:block !important;
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  top:0 !important;
  bottom:auto !important;
  height:min(34vh, 230px) !important;
  z-index:10008 !important;
  background:transparent !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  -webkit-tap-highlight-color:transparent !important;
  touch-action:manipulation !important;
}

/* SIMPLE PLAYER STABILITY PATCH
   Keep custom controls away from YouTube's own controls. No transparent full-screen
   tap catcher, no second-tap pause layer, no phantom clicks. */
.overlayDismissZone,
.overlayTapFullscreen,
.overlayNativeExitHotspot{
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

.overlayMeta{
  position:fixed !important;
  top:max(12px, calc(env(safe-area-inset-top,0px) + 8px)) !important;
  left:max(12px, calc(env(safe-area-inset-left,0px) + 8px)) !important;
  right:max(82px, calc(env(safe-area-inset-right,0px) + 82px)) !important;
  bottom:auto !important;
  z-index:10030 !important;
  background:transparent !important;
  pointer-events:none !important;
}

.overlayFauxExit{
  display:flex !important;
  position:fixed !important;
  top:max(12px, calc(env(safe-area-inset-top,0px) + 8px)) !important;
  right:max(12px, calc(env(safe-area-inset-right,0px) + 8px)) !important;
  bottom:auto !important;
  left:auto !important;
  z-index:10050 !important;
  pointer-events:auto !important;
}

.overlayActions{justify-content:flex-start !important; max-width:min(560px, calc(100vw - 112px)) !important;}
.overlayActionBtn{pointer-events:auto !important; touch-action:manipulation !important;}

.immersiveOverlay.overlay-controls-hidden .overlayMeta,
.immersiveOverlay.overlay-controls-hidden .overlayFauxExit,
.immersiveOverlay.overlay-controls-hidden .overlayActionBtn,
.immersiveOverlay.overlay-controls-hidden .overlayActions,
.immersiveOverlay.overlay-controls-hidden .overlayNextHint,
.immersiveOverlay.overlay-controls-hidden .overlayTitle,
.immersiveOverlay.overlay-controls-hidden .overlaySubtitle{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

.immersiveOverlay.overlay-controls-visible .overlayMeta,
.immersiveOverlay.overlay-controls-visible .overlayFauxExit{
  opacity:1 !important;
  visibility:visible !important;
}
.immersiveOverlay.overlay-controls-visible .overlayActions,
.immersiveOverlay.overlay-controls-visible .overlayActionBtn,
.immersiveOverlay.overlay-controls-visible .overlayNextHint,
.immersiveOverlay.overlay-controls-visible .overlayTitle,
.immersiveOverlay.overlay-controls-visible .overlaySubtitle{
  pointer-events:auto !important;
}

.overlayWakeZone{
  position:fixed !important;
  left:max(0px, env(safe-area-inset-left,0px)) !important;
  bottom:max(0px, env(safe-area-inset-bottom,0px)) !important;
  width:min(34vw, 180px) !important;
  height:min(26vh, 150px) !important;
  z-index:10012 !important;
  border:0 !important;
  background:transparent !important;
  color:transparent !important;
  opacity:1 !important;
  -webkit-appearance:none !important;
  appearance:none !important;
  -webkit-tap-highlight-color:transparent !important;
  touch-action:manipulation !important;
}
.overlayWakeZone[hidden]{display:none !important;}
.immersiveOverlay.overlay-controls-hidden .overlayWakeZone{display:block !important; pointer-events:auto !important; visibility:visible !important;}
.immersiveOverlay.overlay-controls-visible .overlayWakeZone{display:none !important; pointer-events:none !important;}

@media (max-width:900px){
  .overlayTitle{font-size:15px !important; max-width:calc(100vw - 120px) !important; white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important;}
  .overlaySubtitle,.overlayNextHint{display:none !important;}
  .overlayActions{gap:8px !important; max-width:calc(100vw - 112px) !important;}
  .overlayActionBtn{min-height:42px !important; padding:9px 12px !important; font-size:13px !important;}
}


/* VIDEO PLAYER TAP-TO-RETURN CONTROLS PATCH
   Purpose: when the YouTube iframe is playing and River Thoughts controls have faded,
   a tap on the safe top/middle video area brings Next/Close/Fullscreen back.
   The bottom-right YouTube native fullscreen/control area stays unblocked. */
.overlayDismissZone,
.overlayTapFullscreen,
.overlayNativeExitHotspot{
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

/* Hidden-state wake areas. These are only active while custom controls are hidden. */
.immersiveOverlay.overlay-controls-hidden .overlayDismissZone{
  display:block !important;
  position:fixed !important;
  left:0 !important;
  top:0 !important;
  width:100vw !important;
  height:62vh !important;
  z-index:10012 !important;
  background:transparent !important;
  border:0 !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  -webkit-appearance:none !important;
  appearance:none !important;
  -webkit-tap-highlight-color:transparent !important;
  touch-action:manipulation !important;
}

.immersiveOverlay.overlay-controls-hidden .overlayWakeZone{
  display:block !important;
  position:fixed !important;
  left:max(0px, env(safe-area-inset-left,0px)) !important;
  bottom:max(0px, env(safe-area-inset-bottom,0px)) !important;
  width:min(34vw, 180px) !important;
  height:min(26vh, 150px) !important;
  z-index:10013 !important;
  background:transparent !important;
  border:0 !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  -webkit-appearance:none !important;
  appearance:none !important;
  -webkit-tap-highlight-color:transparent !important;
  touch-action:manipulation !important;
}

/* When controls are visible, remove all transparent wake layers so only visible buttons receive clicks. */
.immersiveOverlay.overlay-controls-visible .overlayDismissZone,
.immersiveOverlay.overlay-controls-visible .overlayWakeZone{
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

/* Keep YouTube's bottom controls and fullscreen button clear. */
.immersiveOverlay.overlay-controls-hidden .overlayStage iframe,
.immersiveOverlay.overlay-controls-visible .overlayStage iframe{
  pointer-events:auto !important;
}

/* ===============================
   Navigation upgrades – simple episode hub
   =============================== */
.heroCard .continueWatching{
  margin-top:12px;
  padding:10px;
  border-radius:14px;
  border:1px solid rgba(56,189,248,.20);
  background:rgba(56,189,248,.07);
}
.episodeNavCard .pad{padding:10px}
.episodeNavRow{display:grid; grid-template-columns:1fr auto 1fr; gap:8px; align-items:stretch}
.episodeNavRow .btn{min-height:54px; flex-direction:column; line-height:1.15; text-align:center}
.episodeNavRow .btn span{font-size:11px; color:var(--muted); font-weight:500}
.episodeTimeline{scroll-margin-top:84px}
.timelineHead{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:12px}
.episodeSearchWrap{margin:12px 0}
.episodeSearch{font-size:15px; min-height:44px}
.episodeTimelineList{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px}
.episodeCard{
  display:grid;
  grid-template-columns:84px 1fr;
  gap:10px;
  padding:8px;
  border-radius:15px;
  border:1px solid rgba(255,255,255,.09);
  background:rgba(255,255,255,.035);
  min-height:82px;
  transition:transform .15s ease, border-color .15s ease, background .15s ease;
}
.episodeCard:hover{transform:translateY(-1px); border-color:rgba(56,189,248,.30); background:rgba(56,189,248,.06)}
.episodeCard.is-current{border-color:rgba(56,189,248,.65); background:rgba(56,189,248,.12)}
.episodeCard.is-locked{opacity:.58; cursor:not-allowed}
.episodeCard[hidden]{display:none!important}
.episodeCardThumb{position:relative; overflow:hidden; border-radius:12px; background:rgba(0,0,0,.28); aspect-ratio:16/9; align-self:start}
.episodeCardThumb img{width:100%; height:100%; object-fit:cover; display:block}
.episodeCardBody{min-width:0}
.episodeCard .railTitle{font-size:13px; line-height:1.18; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.startBtn{white-space:nowrap}
.mobileBottomNav{display:none}
body.has-mobile-nav{padding-bottom:0}
@media (min-width:760px){
  .episodeTimelineList{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:700px){
  .timelineHead{flex-direction:column}
  .timelineHead .btn{width:100%}
  .episodeTimelineList{grid-template-columns:1fr}
  .episodeNavRow{grid-template-columns:1fr;}
  .mobileBottomNav{
    position:fixed; left:10px; right:10px; bottom:max(10px, env(safe-area-inset-bottom));
    z-index:30; display:grid; grid-template-columns:repeat(3,1fr); gap:6px;
    padding:7px; border-radius:18px; border:1px solid rgba(255,255,255,.12);
    background:rgba(5,8,22,.86); backdrop-filter:blur(14px); box-shadow:0 10px 30px rgba(0,0,0,.38);
  }
  .mobileBottomNav a{display:flex; justify-content:center; align-items:center; min-height:38px; border-radius:13px; background:rgba(255,255,255,.055); font-size:12px; font-weight:700}
  .mobileBottomNav a:active,.mobileBottomNav a:hover{background:rgba(56,189,248,.13)}
  body{padding-bottom:74px}
}

/* Share panel */
.shareModal[hidden]{display:none!important}
.shareModal{position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:18px}
.shareBackdrop{position:absolute; inset:0; background:rgba(0,0,0,.62); backdrop-filter:blur(6px)}
.sharePanel{position:relative; width:min(520px,100%); border-radius:22px; border:1px solid rgba(255,255,255,.14); background:linear-gradient(180deg, rgba(15,27,61,.98), rgba(5,8,22,.98)); box-shadow:0 24px 80px rgba(0,0,0,.55); padding:16px}
.sharePanelHead{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:14px}
.shareUrlInput{font-size:14px; margin-bottom:12px; background:rgba(0,0,0,.28)}
.shareGrid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px}
.shareGrid .btn{width:100%}
@media (max-width:520px){.shareGrid{grid-template-columns:1fr}.sharePanel{padding:14px}.shareModal{align-items:flex-end}}

/* Fast, readable share button */
.shareBtn{
  color:#ffffff !important;
  font-weight:700;
  border-color:rgba(255,255,255,.20);
}
.shareBtn:active{ transform:translateY(1px); }
.sharePanel .btn,
.sharePanel button,
.sharePanel a{
  color:#ffffff !important;
}

/* Merged navigation + Up next */
.episodeNavigator .pad{padding:12px}
.episodeNavigator .timelineHead.compact{margin-bottom:10px}
.episodeNavigator .episodeNavRow{margin-bottom:10px}
.episodeNavigator .episodeSearchWrap{margin:10px 0}
.episodeNavigatorList{display:flex; flex-direction:column; gap:8px}
.episodeNavigatorList{
  max-height:calc(100dvh - 310px);
  overflow-y:auto;
  overscroll-behavior:contain;
  scroll-padding-block:18px;
  padding-right:4px;
}
@media (max-width:900px){
  .episodeNavigatorList{max-height:60dvh;}
}

.episodeNavigator .railItem{grid-template-columns:118px 1fr; align-items:center}
.episodeNavigator .railItem.is-current{
  outline:2px solid rgba(56,189,248,.75);
  border-color:rgba(56,189,248,.70);
  background:linear-gradient(135deg, rgba(56,189,248,.16), rgba(255,255,255,.045));
}
.episodeNavigator .railItem.is-current .railTitle{color:#ffffff}
.nowPlayingPill{
  position:absolute; left:7px; bottom:7px; z-index:3;
  padding:4px 7px; border-radius:999px;
  background:rgba(14,165,233,.92); color:#fff;
  font-size:11px; font-weight:800; letter-spacing:.02em;
  box-shadow:0 8px 18px rgba(0,0,0,.35);
}
.nowPlayingText{margin-top:5px; color:#7dd3fc; font-weight:800}
.episodeNavItem.is-locked{opacity:.62; cursor:not-allowed}
.episodeNavigator .railItem[hidden]{display:none!important}
@media (max-width:900px){
  .episodeNavigator{order:2}
  .episodeNavigator .railItem{grid-template-columns:112px 1fr}
}

/* Mobile/search/grid polish patch */
.tile.is-current{
  outline:2px solid rgba(56,189,248,.75);
  background:rgba(56,189,248,.10);
}
.seasonGrid .tile[hidden],
.episodeNavigatorList [hidden],
.episodeTimelineList [hidden]{display:none !important;}
@media (max-width:900px){
  .episodeNavigatorList{
    max-height:58dvh !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
    scroll-padding-block:76px;
  }
  .episodeNavigator .railItem.is-current,
  .episodeTimelineList .episodeCard.is-current,
  .seasonGrid .tile.is-current{
    scroll-margin-top:88px;
    scroll-margin-bottom:96px;
  }
}

/* Comments toggle + stronger mobile current-episode scrolling */
.commentsToggleWrap{margin-top:12px;margin-bottom:12px;display:flex;justify-content:flex-start;gap:10px;flex-wrap:wrap}
.commentsToggle{color:#fff!important;font-weight:800;border-color:rgba(56,189,248,.35);background:rgba(56,189,248,.10)}
.commentsCard[hidden]{display:none!important}
@media (max-width:900px){
  .episodeNavigatorList{
    max-height:64dvh!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    scroll-padding-top:96px!important;
    scroll-padding-bottom:110px!important;
  }
  .episodeNavigator .railItem.is-current,
  .episodeTimelineList .episodeCard.is-current,
  .seasonGrid .tile.is-current,
  .grid .tile.is-current{
    scroll-margin-top:96px!important;
    scroll-margin-bottom:110px!important;
  }
}


/* ===============================
   UX declutter + mobile-first optimization
   =============================== */

/* Remove duplicated navigation/search sections; keep the unified episode sidebar */
.homeLayout .episodeTimeline,
.homeLayout .episodeNavCard,
.homeLayout .episodeNavRow:not(.episodeNavigator .episodeNavRow){
  display:none !important;
}

/* Cleaner hero actions */
.homeLayout .heroCard .ctaRow{
  align-items:center;
}
.homeLayout .heroCard .ctaRow .btn{
  flex:1 1 160px;
}

/* Better desktop proportions */
@media (min-width: 901px){
  .watchLayout.homeLayout{
    display:grid;
    grid-template-columns:minmax(0,1.75fr) minmax(320px,.9fr);
    gap:18px;
    align-items:start;
  }
}

/* Mobile optimization */
@media (max-width: 900px){
  .wrap{
    padding:12px 10px 90px;
  }

  .topbar .inner{
    flex-wrap:wrap;
    gap:10px;
  }

  .nav{
    width:100%;
    overflow-x:auto;
    flex-wrap:nowrap;
    justify-content:flex-start;
    padding-bottom:2px;
    scrollbar-width:none;
  }
  .nav::-webkit-scrollbar{display:none;}

  .tab{
    flex:0 0 auto;
    padding:9px 12px;
    font-size:14px;
  }

  .brand h1{
    font-size:18px;
  }

  /* Stack sections cleanly */
  .watchLayout.homeLayout{
    display:flex;
    flex-direction:column;
    gap:12px;
  }

  /* Show episode discovery immediately after hero */
  .homeLayout .episodeNavigator{
    order:2;
    width:100%;
  }

  .homeLayout > div:first-child{
    order:1;
  }

  .homeLayout .playerWrap{
    margin-top:0;
  }

  /* Compact hero */
  .heroCard .h2{
    font-size:32px;
    line-height:1.15;
  }

  .heroCard .ctaRow{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }

  .heroCard .ctaRow .btn,
  .heroCard .ctaRow a{
    width:100%;
    min-height:48px;
  }

  /* Easier episode browsing */
  .episodeNavigator .episodeNavRow{
    grid-template-columns:repeat(3,minmax(0,1fr));
    position:sticky;
    top:64px;
    z-index:5;
    background:rgba(11,18,38,.96);
    padding-bottom:8px;
  }

  .episodeNavigator .episodeSearchWrap{
    position:sticky;
    top:132px;
    z-index:4;
    background:rgba(11,18,38,.96);
    padding-bottom:8px;
  }

  .episodeNavigatorList{
    max-height:50dvh !important;
  }

  .episodeNavigator .railItem{
    grid-template-columns:96px 1fr;
    gap:8px;
  }

  .railTitle{
    font-size:18px;
    line-height:1.2;
  }

  .railKicker{
    font-size:14px;
  }

  /* Cleaner mobile bottom nav */
  .mobileBottomNav{
    grid-template-columns:repeat(3,1fr);
  }

  .mobileBottomNav a{
    font-size:13px;
    min-height:44px;
  }

  /* Reduce redundant buttons below player if injected */
  .playerWrap + .episodeNavRow,
  .playerWrap ~ .episodeNavCard{
    display:none !important;
  }
}

/* =========================================================
   Mobile app layout patch - sticky episode controls + centred player
   ========================================================= */
.mobileEpisodeTopOverlay{display:none;}

@media (max-width: 900px){
  :root{--mobileTopOverlayH: 184px;}

  body:not(.admin-page){
    padding-top:var(--mobileTopOverlayH);
    padding-bottom:96px;
    background:radial-gradient(900px 520px at 50% -120px, #10223f 0%, #050816 64%);
  }

  /* Replace the old website header with episode-first controls on video pages. */
  body:not(.admin-page) .topbar{display:none!important;}

  .wrap{
    max-width:760px;
    padding:10px 10px 28px;
    margin:0 auto;
  }

  .watchLayout,
  .watchLayout.homeLayout{
    display:flex!important;
    flex-direction:column!important;
    gap:12px!important;
    align-items:center;
  }

  .watchLayout > div:first-child,
  .homeLayout > div:first-child{
    width:100%;
    display:flex;
    flex-direction:column;
    align-items:center;
  }

  /* Sticky overlay copied from the requested Episodes section. */
  .mobileEpisodeTopOverlay{
    position:fixed;
    top:max(8px, env(safe-area-inset-top));
    left:10px;
    right:10px;
    z-index:80;
    display:block;
    padding:10px;
    border-radius:26px;
    border:1px solid rgba(255,255,255,.14);
    background:linear-gradient(180deg, rgba(18,24,42,.94), rgba(8,12,24,.92));
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    box-shadow:0 18px 48px rgba(0,0,0,.45);
  }

  .mobileEpisodeTopOverlay .episodeNavRow{
    display:grid!important;
    grid-template-columns:1fr 1.12fr 1fr;
    gap:8px;
    margin:0;
  }

  .mobileEpisodeTopOverlay .episodeNavRow .btn{
    min-height:78px;
    border-radius:20px;
    padding:10px 8px;
    font-size:18px;
    font-weight:850;
    flex-direction:column;
    line-height:1.08;
    text-align:center;
    background:rgba(255,255,255,.045);
    border-color:rgba(255,255,255,.12);
  }

  .mobileEpisodeTopOverlay .episodeNavRow .btn.primary{
    background:linear-gradient(180deg, rgba(14,56,84,.72), rgba(12,38,60,.72));
    border-color:rgba(56,189,248,.72);
    box-shadow:inset 0 0 0 1px rgba(56,189,248,.12);
  }

  .mobileEpisodeTopOverlay .episodeNavRow .btn.disabled{
    opacity:.38;
  }

  .mobileEpisodeTopOverlay .episodeNavRow .btn span{
    margin-top:8px;
    color:rgba(255,255,255,.58);
    font-size:15px;
    font-weight:760;
  }

  .mobileEpisodeTopOverlay .episodeSearchWrap{
    margin:10px 0 0;
  }

  .mobileEpisodeTopOverlay .episodeSearch{
    min-height:54px;
    border-radius:19px;
    font-size:20px;
    padding:13px 18px;
    background:rgba(0,0,0,.22);
    border-color:rgba(255,255,255,.13);
  }

  /* The episode list stays available lower down; duplicate controls are hidden. */
  .episodeNavigator{
    width:100%;
    order:8;
    scroll-margin-top:calc(var(--mobileTopOverlayH) + 12px);
  }
  .episodeNavigator > .pad > .episodeNavRow,
  .episodeNavigator > .pad > .episodeSearchWrap{
    display:none!important;
  }
  .episodeNavigator .timelineHead.compact{
    margin-bottom:12px;
  }
  .episodeNavigator .episodeNavigatorList{
    max-height:none!important;
    overflow:visible!important;
    padding-right:0;
  }

  /* Centre the video in the middle of the screen and make it the hero. */
  .playerWrap{
    order:1;
    width:100%;
    margin:0 auto 12px!important;
    border-radius:24px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.14);
    background:#000;
    box-shadow:0 18px 55px rgba(0,0,0,.42);
  }

  .player,
  .videoShell,
  .videoPoster,
  .videoPoster img{
    border-radius:24px;
  }

  .playBtn,
  .rt-video-play{
    width:88px!important;
    height:88px!important;
    border-radius:999px!important;
    background:rgba(0,0,0,.56)!important;
    color:#fff!important;
    font-size:36px!important;
    box-shadow:0 12px 32px rgba(0,0,0,.44)!important;
  }

  .videoPosterLabel{display:none!important;}

  /* Put episode details/actions under the video, app-style. */
  .watchLayout > div:first-child > .card:not(.episodeNavigator),
  .homeLayout > div:first-child > .heroCard{
    order:2;
    width:100%;
    border-radius:0 0 24px 24px;
    border-color:rgba(255,255,255,.08);
    background:linear-gradient(180deg, rgba(8,17,28,.92), rgba(5,8,22,.82));
    box-shadow:none;
  }

  .heroCard .pad,
  .watchLayout > div:first-child > .card .pad{
    padding:18px 18px 20px;
  }

  .heroCard .kicker,
  .watchLayout .kicker{
    color:#38bdf8;
    font-size:17px;
    font-weight:800;
  }

  .heroCard .h2,
  .watchLayout .h2{
    font-size:25px!important;
    line-height:1.18;
    margin-top:8px;
    letter-spacing:-.02em;
  }

  .heroCard .small,
  .watchLayout .small{
    font-size:18px;
    line-height:1.55;
    color:rgba(255,255,255,.66);
  }

  .heroCard .ctaRow,
  .watchLayout .ctaRow{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:16px!important;
  }

  .heroCard .btn,
  .watchLayout .ctaRow .btn,
  .continueWatching .btn{
    min-height:56px;
    border-radius:999px;
    font-size:17px;
    font-weight:850;
    background:rgba(255,255,255,.07);
    border-color:rgba(255,255,255,.12);
  }

  .continueWatching{
    margin-top:16px!important;
    border-radius:20px!important;
  }

  /* Bottom app bar: always Home / Episodes / Search */
  .mobileBottomNav{
    position:fixed;
    left:10px;
    right:10px;
    bottom:max(10px, env(safe-area-inset-bottom));
    z-index:85;
    display:grid!important;
    grid-template-columns:repeat(3,1fr)!important;
    gap:8px;
    padding:10px;
    border-radius:26px;
    border:1px solid rgba(255,255,255,.14);
    background:linear-gradient(180deg, rgba(18,24,42,.94), rgba(8,12,24,.92));
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    box-shadow:0 -12px 40px rgba(0,0,0,.42);
  }

  .mobileBottomNav a{
    min-height:58px!important;
    border-radius:20px!important;
    display:flex!important;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    color:rgba(255,255,255,.72);
    background:transparent!important;
    font-size:13px!important;
    font-weight:750;
  }

  .mobileBottomNav a span{
    font-size:28px;
    line-height:1;
  }

  .mobileBottomNav a b{
    font-size:13px;
    font-weight:800;
  }

  .mobileBottomNav .mobileNavEpisodes{
    color:#fff;
    background:linear-gradient(180deg, rgba(14,56,84,.82), rgba(12,38,60,.82))!important;
    border:1px solid rgba(56,189,248,.22);
  }

  /* Episode list cards below the main experience. */
  .episodeNavigator .railItem{
    grid-template-columns:110px 1fr;
    min-height:94px;
    border-radius:20px;
  }
  .episodeNavigator .railTitle{font-size:17px;line-height:1.18;}
  .episodeNavigator .railKicker{font-size:14px;color:#38bdf8;}

  .footer{padding-bottom:12px;}
}

@media (max-width: 420px){
  :root{--mobileTopOverlayH: 176px;}
  .mobileEpisodeTopOverlay{left:6px;right:6px;border-radius:22px;padding:8px;}
  .mobileEpisodeTopOverlay .episodeNavRow{gap:6px;}
  .mobileEpisodeTopOverlay .episodeNavRow .btn{min-height:72px;font-size:16px;border-radius:18px;}
  .mobileEpisodeTopOverlay .episodeNavRow .btn span{font-size:13px;}
  .mobileEpisodeTopOverlay .episodeSearch{min-height:50px;font-size:18px;border-radius:17px;}
  .wrap{padding-left:6px;padding-right:6px;}
  .heroCard .h2,.watchLayout .h2{font-size:22px!important;}
}


/* =========================================================
   2026-05 app iteration: exact mobile player-style layout
   ========================================================= */

@media (max-width: 900px){
  :root{
    --app-bg:#05080d;
    --app-panel:#08111a;
    --app-panel-2:#0c1521;
    --app-line:rgba(255,255,255,.11);
    --app-blue:#0ea5e9;
  }

  html, body{
    background:#05080d !important;
  }

  body.appMobileReady{
    padding-bottom:96px !important;
  }

  .topbar{
    display:none !important;
  }

  .wrap{
    width:100%;
    max-width:560px;
    margin:0 auto;
    padding:118px 10px 104px !important;
    background:#05080d;
  }

  .watchLayout,
  .watchLayout.homeLayout{
    display:flex !important;
    flex-direction:column !important;
    gap:10px !important;
  }

  .watchLayout > div:first-child{
    display:flex;
    flex-direction:column;
    gap:10px;
  }

  /* Hide old title card on mobile; episode details now live below player */
  .watchLayout > div:first-child > .card:not(.mobileEpisodeInfo):not(.appSearchResults){
    display:none !important;
  }

  .heroCard{
    display:none !important;
  }

  /* Top overlay replaces the old home top bar */
  .mobileEpisodeTopOverlay{
    display:block !important;
    position:fixed;
    top:max(10px, env(safe-area-inset-top));
    left:10px;
    right:10px;
    z-index:80;
    max-width:540px;
    margin:0 auto;
    padding:0;
    border-radius:22px;
    background:linear-gradient(180deg, rgba(12,23,35,.98), rgba(6,12,19,.98));
    border:1px solid rgba(255,255,255,.13);
    box-shadow:0 16px 44px rgba(0,0,0,.48);
    backdrop-filter:blur(16px);
    overflow:hidden;
  }

  .mobileEpisodeTopOverlay .episodeNavRow{
    display:grid !important;
    grid-template-columns:1fr 1.15fr 1fr !important;
    gap:8px !important;
    padding:8px !important;
    margin:0 !important;
    position:static !important;
    background:transparent !important;
  }

  .mobileEpisodeTopOverlay .btn{
    min-height:78px !important;
    border-radius:18px !important;
    padding:9px 8px !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    color:#fff !important;
    font-size:15px !important;
    font-weight:750 !important;
    line-height:1.1 !important;
  }

  .mobileEpisodeTopOverlay .btn.primary{
    border:1.5px solid rgba(14,165,233,.9) !important;
    background:linear-gradient(180deg, rgba(6,40,62,.9), rgba(8,26,39,.9)) !important;
    color:#fff !important;
  }

  .mobileEpisodeTopOverlay .btn.disabled{
    opacity:.52 !important;
  }

  .mobileEpisodeTopOverlay .btn span{
    display:block;
    margin-top:8px;
    color:rgba(255,255,255,.62) !important;
    font-size:13px !important;
    font-weight:650 !important;
  }

  /* Centre the video as the main action */
  .playerWrap{
    order:1;
    width:100%;
    margin:0 auto !important;
    border-radius:18px !important;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.12) !important;
    background:#000 !important;
    box-shadow:0 18px 42px rgba(0,0,0,.42);
  }

  .player{
    aspect-ratio:16/9 !important;
    padding-top:0 !important;
  }

  .videoPosterLabel{
    display:none !important;
  }

  .playBtn,
  .rt-video-play{
    width:86px !important;
    height:86px !important;
    border-radius:999px !important;
    background:rgba(0,0,0,.55) !important;
    color:#fff !important;
    border:1px solid rgba(255,255,255,.18);
    box-shadow:0 16px 36px rgba(0,0,0,.45);
    font-size:36px !important;
  }

  .videoPoster img,
  .rt-video-thumb{
    object-fit:cover !important;
  }

  /* Search results above player after refresh */
  .appSearchResults{
    order:0;
    border-radius:18px !important;
    background:linear-gradient(180deg, rgba(13,24,36,.98), rgba(7,13,21,.98)) !important;
    border:1px solid rgba(255,255,255,.10) !important;
  }

  .appSearchForm{
    display:grid;
    grid-template-columns:1fr auto;
    gap:8px;
    margin-bottom:14px;
  }

  .appSearchForm input{
    min-height:48px;
    font-size:16px;
    border-radius:15px;
    background:rgba(255,255,255,.055);
  }

  .appSectionHead{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:10px;
  }

  .searchResultList{
    display:flex;
    flex-direction:column;
    gap:10px;
  }

  .searchResultItem{
    display:grid;
    grid-template-columns:112px 1fr;
    gap:11px;
    padding:10px;
    border-radius:16px;
    background:rgba(255,255,255,.045);
    border:1px solid rgba(255,255,255,.09);
  }

  .searchResultItem.is-current{
    border-color:rgba(14,165,233,.82);
    background:rgba(14,165,233,.11);
  }

  .searchResultThumb{
    position:relative;
    aspect-ratio:16/9;
    border-radius:12px;
    overflow:hidden;
    background:#111;
  }

  .searchResultThumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }

  .searchResultThumb span{
    position:absolute;
    left:6px;
    bottom:6px;
    padding:4px 7px;
    border-radius:999px;
    background:#0ea5e9;
    color:#fff;
    font-size:11px;
    font-weight:800;
  }

  /* Metadata card below the video */
  .mobileEpisodeInfo{
    display:block !important;
    order:2;
    border-radius:0 0 18px 18px !important;
    margin-top:-10px;
    background:linear-gradient(180deg, rgba(7,17,26,.98), rgba(5,10,17,.98)) !important;
    border:1px solid rgba(255,255,255,.10) !important;
    border-top:0 !important;
    box-shadow:none !important;
  }

  .mobileEpisodeInfo .pad{
    padding:18px 18px 16px !important;
  }

  .appKicker{
    color:#19b8ff;
    font-size:15px;
    font-weight:750;
    margin-bottom:8px;
  }

  .appEpisodeTitle{
    margin:0;
    color:#fff;
    font-size:24px;
    line-height:1.18;
    letter-spacing:-.02em;
  }

  .appMetaLine{
    margin-top:12px;
    display:flex;
    gap:9px;
    align-items:center;
    color:rgba(255,255,255,.62);
    font-size:17px;
  }

  .appActionRow{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin:22px 0;
  }

  .appPillBtn{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-height:46px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.11);
    background:linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.035));
    color:#fff;
    font-size:14px;
    font-weight:700;
    cursor:pointer;
  }

  .appDescription{
    color:rgba(255,255,255,.72);
    font-size:17px;
    line-height:1.55;
    max-height:88px;
    overflow:hidden;
  }

  .appDescription.is-open{
    max-height:none;
  }

  .showMoreBtn{
    margin-top:10px;
    appearance:none;
    border:0;
    background:transparent;
    color:#17baff;
    font-size:16px;
    font-weight:750;
    padding:0;
  }

  /* Keep the full episode browser available, but not competing with play */
  .episodeNavigator{
    order:3 !important;
    margin-top:10px;
    border-radius:18px !important;
    background:linear-gradient(180deg, rgba(13,24,36,.98), rgba(7,13,21,.98)) !important;
  }

  .episodeNavigator .timelineHead{
    display:flex !important;
  }

  .episodeNavigator .episodeNavRow,
  .episodeNavigator .episodeSearchWrap{
    display:none !important;
  }

  .episodeNavigatorList{
    max-height:none !important;
    overflow:visible !important;
    padding-right:0 !important;
  }

  .episodeNavigator .railItem{
    grid-template-columns:112px 1fr !important;
    min-height:92px;
    border-radius:16px;
    background:rgba(255,255,255,.04);
  }

  .episodeNavigator .railThumb{
    border-radius:12px;
  }

  .episodeNavigator .railTitle{
    font-size:16px !important;
    line-height:1.2 !important;
  }

  .episodeNavigator .railKicker{
    color:#1db7ff;
  }

  /* App-like bottom overlay: always Home / Episodes / Search */
  .mobileBottomNav{
    display:grid !important;
    position:fixed !important;
    left:10px !important;
    right:10px !important;
    bottom:max(10px, env(safe-area-inset-bottom)) !important;
    max-width:540px;
    margin:0 auto;
    z-index:90 !important;
    grid-template-columns:repeat(3,1fr) !important;
    gap:6px !important;
    padding:9px 10px !important;
    border-radius:24px !important;
    border:1px solid rgba(255,255,255,.13) !important;
    background:linear-gradient(180deg, rgba(13,24,36,.96), rgba(6,12,19,.96)) !important;
    backdrop-filter:blur(18px);
    box-shadow:0 -16px 44px rgba(0,0,0,.42);
  }

  .mobileBottomNav a{
    min-height:58px !important;
    display:flex !important;
    flex-direction:column !important;
    gap:3px;
    align-items:center !important;
    justify-content:center !important;
    border-radius:18px !important;
    background:transparent !important;
    color:rgba(255,255,255,.68) !important;
    font-size:13px !important;
    font-weight:650 !important;
  }

  .mobileBottomNav a span{
    font-size:25px !important;
    line-height:1;
  }

  .mobileBottomNav a.mobileNavEpisodes{
    color:#14b8ff !important;
    background:rgba(14,165,233,.12) !important;
  }

  .mobileBottomNav a:active{
    transform:scale(.98);
  }

  .footer{
    display:none !important;
  }

  .commentsCard{
    order:4;
  }
}

@media (min-width: 901px){
  .mobileEpisodeTopOverlay,
  .mobileEpisodeInfo{
    display:none !important;
  }
}

/* Small phones */
@media (max-width: 390px){
  .wrap{padding-top:106px !important;}
  .mobileEpisodeTopOverlay .btn{min-height:66px !important; font-size:13px !important;}
  .mobileEpisodeTopOverlay .btn span{font-size:12px !important;}
  .appEpisodeTitle{font-size:21px;}
  .appActionRow{gap:7px;}
  .appPillBtn{font-size:12px; min-height:42px;}
}


/* =========================================================
   Hotfix: remove mobile top blank gap + keep episode nav stuck
   ========================================================= */
@media (max-width: 900px){
  html{
    scroll-padding-top:108px !important;
  }

  body.appMobileReady{
    padding-top:0 !important;
    background:#05080d !important;
  }

  .wrap{
    padding-top:108px !important;
  }

  /* The episode controls must always be visible and fixed at the top. */
  .mobileEpisodeTopOverlay{
    display:block !important;
    position:fixed !important;
    top:max(8px, env(safe-area-inset-top)) !important;
    left:10px !important;
    right:10px !important;
    z-index:9999 !important;
    transform:none !important;
    pointer-events:auto !important;
  }

  /* Stop any old sticky/search sections creating vertical dead space. */
  .mobileEpisodeTopOverlay .mobileTopSearch,
  .mobileEpisodeTopOverlay .episodeSearchWrap{
    display:none !important;
    height:0 !important;
    margin:0 !important;
    padding:0 !important;
  }

  .mobileEpisodeTopOverlay + *,
  .mobileEpisodeTopOverlay ~ *{
    margin-top:0 !important;
  }

  .watchLayout,
  .watchLayout.homeLayout{
    margin-top:0 !important;
    padding-top:0 !important;
  }

  .watchLayout > div:first-child{
    gap:0 !important;
    margin-top:0 !important;
    padding-top:0 !important;
  }

  .watchLayout > div:first-child > div[style*="height:12px"]{
    display:none !important;
    height:0 !important;
  }

  .appSearchResults{
    margin-top:0 !important;
    margin-bottom:10px !important;
  }

  /* Video should sit directly under the overlay, centred and easy to play. */
  .playerWrap{
    margin-top:0 !important;
    margin-bottom:0 !important;
    order:1 !important;
    display:block !important;
  }

  .playerWrap,
  .player,
  #managedPlayerRoot{
    min-height:0 !important;
  }

  .commentsToggleWrap,
  .commentsCard{
    order:6 !important;
  }

  /* Comments must not appear above the video on mobile. */
  .commentsToggleWrap{
    margin-top:14px !important;
  }

  .mobileEpisodeInfo{
    order:2 !important;
  }

  .episodeNavigator{
    order:5 !important;
  }

  /* Avoid browser address-bar overlap by keeping bottom nav fixed but lower content padded. */
  .mobileBottomNav{
    z-index:9998 !important;
  }
}

@media (max-width: 390px){
  .wrap{
    padding-top:96px !important;
  }
}


/* =========================================================
   Final mobile polish: natural top controls, no top gap, useful actions
   ========================================================= */
@media (max-width:900px){
  body.appMobileReady{
    padding-top:0 !important;
    padding-bottom:156px !important;
    background:#05080d !important;
  }

  .wrap{
    max-width:560px !important;
    padding-left:10px !important;
    padding-right:10px !important;
    padding-top:8px !important;
    padding-bottom:156px !important;
  }

  /* Natural top position first, sticky after scrolling. Not a floating mid-page overlay. */
  .mobileEpisodeTopOverlay{
    position:sticky !important;
    top:max(8px, env(safe-area-inset-top)) !important;
    left:auto !important;
    right:auto !important;
    z-index:2000 !important;
    width:100% !important;
    max-width:none !important;
    margin:0 0 10px 0 !important;
    border-radius:22px !important;
    transform:none !important;
    box-shadow:0 12px 34px rgba(0,0,0,.42) !important;
  }

  .mobileEpisodeTopOverlay .episodeNavRow{
    display:grid !important;
    grid-template-columns:1fr 1.12fr 1fr !important;
    gap:8px !important;
    padding:8px !important;
    margin:0 !important;
    background:transparent !important;
  }

  .mobileEpisodeTopOverlay .episodeSearchWrap,
  .mobileEpisodeTopOverlay .mobileTopSearch{
    display:none !important;
  }

  .mobileEpisodeTopOverlay .btn{
    min-height:76px !important;
    border-radius:18px !important;
    padding:9px 6px !important;
    font-size:15px !important;
    font-weight:800 !important;
  }

  .mobileEpisodeTopOverlay .btn span{
    margin-top:8px !important;
    font-size:13px !important;
  }

  .watchLayout,
  .watchLayout.homeLayout{
    margin-top:0 !important;
    padding-top:0 !important;
    gap:0 !important;
  }

  .watchLayout > div:first-child{
    gap:0 !important;
  }

  .watchLayout > div:first-child > div[style*="height:12px"]{
    display:none !important;
  }

  /* No item such as comments may jump above the video. */
  .playerWrap{
    order:1 !important;
    margin:0 !important;
    border-radius:18px 18px 0 0 !important;
  }

  .mobileEpisodeInfo{
    order:2 !important;
    margin-top:0 !important;
    border-radius:0 0 18px 18px !important;
  }

  .commentsToggleWrap,
  .commentsCard{
    order:8 !important;
  }

  .episodeNavigator{
    order:6 !important;
    margin-top:12px !important;
  }

  .appSearchResults{
    order:0 !important;
    margin:0 0 10px 0 !important;
  }

  /* Current bottom season selector: easiest way to Lent and Christmas. */
  .mobileSeasonNav{
    position:fixed !important;
    left:10px !important;
    right:10px !important;
    bottom:calc(max(10px, env(safe-area-inset-bottom)) + 88px) !important;
    z-index:1999 !important;
    max-width:540px;
    margin:0 auto;
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:0;
    padding:8px !important;
    border-radius:23px !important;
    border:1px solid rgba(255,255,255,.13) !important;
    background:linear-gradient(180deg, rgba(13,24,36,.96), rgba(6,12,19,.96)) !important;
    backdrop-filter:blur(18px);
    box-shadow:0 -12px 36px rgba(0,0,0,.40);
  }

  .mobileSeasonNav a{
    min-height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    color:rgba(255,255,255,.64);
    font-weight:750;
    font-size:13px;
    border-radius:15px;
    border-right:1px solid rgba(255,255,255,.10);
  }

  .mobileSeasonNav a:last-child{border-right:0;}
  .mobileSeasonNav a.active,
  .mobileSeasonNav a:active{
    color:#fff;
    background:rgba(255,255,255,.13);
  }

  .mobileSeasonNav a:nth-child(2).active,
  .mobileSeasonNav a:nth-child(2):active{
    color:#18baff;
    background:rgba(14,165,233,.14);
  }

  .mobileBottomNav{
    bottom:max(10px, env(safe-area-inset-bottom)) !important;
    z-index:2000 !important;
  }

  /* Make action states obvious. */
  .appPillBtn.is-active{
    color:#16baff !important;
    border-color:rgba(14,165,233,.65) !important;
    background:rgba(14,165,233,.13) !important;
  }

  .moreMenu{
    display:none;
    margin-top:-10px;
    margin-bottom:16px;
    padding:12px;
    border-radius:16px;
    border:1px solid rgba(255,255,255,.11);
    background:rgba(255,255,255,.05);
    color:rgba(255,255,255,.78);
    font-size:15px;
    line-height:1.4;
  }
  .moreMenu.is-open{display:block;}

  .continueWatching,
  .progressCard,
  .upNextMini{
    display:block;
    margin-top:14px;
    padding:16px;
    border-radius:18px;
    border:1px solid rgba(255,255,255,.10);
    background:linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.025));
  }
}

@media (min-width:901px){
  .mobileSeasonNav{display:none !important;}
}


/* =========================================================
   Final decision layout: natural sticky top, search, video
   ========================================================= */
@media (max-width:900px){
  body.appMobileReady{
    background:#05080d !important;
    padding-top:0 !important;
    padding-bottom:104px !important;
  }

  .topbar{
    display:none !important;
  }

  .wrap{
    max-width:560px !important;
    margin:0 auto !important;
    padding:10px 10px 112px !important;
  }

  .watchLayout,
  .watchLayout.homeLayout{
    display:flex !important;
    flex-direction:column !important;
    gap:0 !important;
    margin:0 !important;
    padding:0 !important;
  }

  .watchLayout > div:first-child{
    display:flex !important;
    flex-direction:column !important;
    gap:0 !important;
    margin:0 !important;
    padding:0 !important;
  }

  /* Top nav is NOT a detached overlay. It starts at the top naturally and stays sticky. */
  .mobileEpisodeTopOverlay{
    position:sticky !important;
    top:max(8px, env(safe-area-inset-top)) !important;
    left:auto !important;
    right:auto !important;
    width:100% !important;
    max-width:none !important;
    z-index:1000 !important;
    margin:0 0 10px !important;
    padding:8px !important;
    border-radius:22px !important;
    background:linear-gradient(180deg, rgba(12,23,35,.98), rgba(6,12,19,.98)) !important;
    border:1px solid rgba(255,255,255,.13) !important;
    box-shadow:0 12px 34px rgba(0,0,0,.42) !important;
    backdrop-filter:blur(16px);
    overflow:hidden !important;
    transform:none !important;
  }

  .mobileEpisodeTopOverlay .episodeNavRow{
    display:grid !important;
    grid-template-columns:1fr 1.06fr 1fr !important;
    gap:8px !important;
    padding:0 !important;
    margin:0 !important;
    background:transparent !important;
    position:static !important;
  }

  .mobileEpisodeTopOverlay .btn{
    min-height:74px !important;
    border-radius:17px !important;
    padding:8px 6px !important;
    color:#fff !important;
    background:rgba(255,255,255,.025) !important;
    border:1px solid rgba(255,255,255,.10) !important;
    font-size:15px !important;
    font-weight:800 !important;
    line-height:1.12 !important;
    box-shadow:none !important;
  }

  .mobileEpisodeTopOverlay .btn.primary{
    border-color:rgba(14,165,233,.9) !important;
    background:linear-gradient(180deg, rgba(6,40,62,.92), rgba(8,26,39,.92)) !important;
  }

  .mobileEpisodeTopOverlay .btn.disabled{
    opacity:.55 !important;
  }

  .mobileEpisodeTopOverlay .btn span{
    margin-top:8px !important;
    color:rgba(255,255,255,.62) !important;
    font-size:13px !important;
    font-weight:650 !important;
  }

  /* Search directly below previous/now/next, still part of the sticky top panel. */
  .mobileInlineSearch{
    display:grid !important;
    grid-template-columns:auto 1fr;
    align-items:center;
    gap:10px;
    margin-top:9px;
    min-height:54px;
    padding:0 14px;
    border-radius:16px;
    border:1px solid rgba(255,255,255,.12);
    background:rgba(5,7,16,.72);
  }

  .mobileInlineSearch span{
    color:rgba(255,255,255,.55);
    font-size:25px;
    line-height:1;
  }

  .mobileInlineSearch input{
    min-height:50px;
    border:0 !important;
    padding:0 !important;
    background:transparent !important;
    color:#fff;
    font-size:18px;
    outline:0;
  }

  .mobileInlineSearch input::placeholder{
    color:rgba(255,255,255,.58);
  }

  /* Hide duplicate internal sidebar search on mobile. */
  .episodeNavigator > .pad > .episodeSearchWrap{
    display:none !important;
  }

  .watchLayout > div:first-child > div[style*="height:12px"]{
    display:none !important;
  }

  .watchLayout > div:first-child > .card:not(.mobileEpisodeInfo):not(.appSearchResults){
    display:none !important;
  }

  .heroCard{
    display:none !important;
  }

  /* Video must be immediately after the top controls/search. */
  .playerWrap{
    order:1 !important;
    margin:0 !important;
    border-radius:18px 18px 0 0 !important;
    border:1px solid rgba(255,255,255,.13) !important;
    border-bottom:0 !important;
    overflow:hidden !important;
    box-shadow:0 18px 42px rgba(0,0,0,.42) !important;
  }

  .player{
    aspect-ratio:16/9 !important;
    padding-top:0 !important;
  }

  .videoPosterLabel{
    display:none !important;
  }

  .playBtn,
  .rt-video-play{
    width:86px !important;
    height:86px !important;
    border-radius:999px !important;
    background:rgba(0,0,0,.55) !important;
    color:#fff !important;
    border:1px solid rgba(255,255,255,.18) !important;
    box-shadow:0 16px 36px rgba(0,0,0,.45) !important;
    font-size:36px !important;
  }

  .mobileEpisodeInfo{
    order:2 !important;
    margin:0 !important;
    border-radius:0 0 18px 18px !important;
    border-top:0 !important;
  }

  .appSearchResults{
    order:0 !important;
    margin:0 0 10px !important;
  }

  .episodeNavigator{
    order:6 !important;
    margin-top:12px !important;
  }

  .episodeNavigator .episodeNavRow{
    display:none !important;
  }

  .commentsToggleWrap,
  .commentsCard{
    order:8 !important;
  }

  /* Keep bottom nav simple: Home, Episodes, Search. */
  .mobileSeasonNav{
    display:none !important;
  }

  .mobileBottomNav{
    display:grid !important;
    position:fixed !important;
    left:10px !important;
    right:10px !important;
    bottom:max(10px, env(safe-area-inset-bottom)) !important;
    max-width:540px !important;
    margin:0 auto !important;
    z-index:1001 !important;
    grid-template-columns:repeat(3,1fr) !important;
    padding:9px 10px !important;
    border-radius:24px !important;
    background:linear-gradient(180deg, rgba(13,24,36,.96), rgba(6,12,19,.96)) !important;
    border:1px solid rgba(255,255,255,.13) !important;
    backdrop-filter:blur(18px);
    box-shadow:0 -16px 44px rgba(0,0,0,.42) !important;
  }

  .mobileBottomNav a{
    min-height:58px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:3px !important;
    border-radius:18px !important;
    background:transparent !important;
    color:rgba(255,255,255,.68) !important;
    font-size:13px !important;
    font-weight:650 !important;
  }

  .mobileBottomNav a span{
    font-size:25px !important;
  }

  .mobileBottomNav a.mobileNavEpisodes{
    color:#14b8ff !important;
    background:rgba(14,165,233,.12) !important;
  }

  /* Simple route chips for Podcast / Lent / Christmas live in Episodes list only. */
  .episodeNavigator .timelineHead.compact::after{
    content:"";
    display:block;
    margin-top:8px;
    color:#7dd3fc;
    font-size:13px;
    font-weight:700;
  }
}

@media (min-width:901px){
  .mobileInlineSearch{
    display:none !important;
  }
}

@media (max-width:390px){
  .wrap{
    padding-left:8px !important;
    padding-right:8px !important;
  }
  .mobileEpisodeTopOverlay .btn{
    min-height:66px !important;
    font-size:13px !important;
  }
  .mobileEpisodeTopOverlay .btn span{
    font-size:12px !important;
  }
  .mobileInlineSearch{
    min-height:48px;
  }
  .mobileInlineSearch input{
    font-size:16px;
  }
}


/* Top priority ordering: prev/now/next first, search second */
@media (max-width:900px){
  .mobileEpisodeTopOverlay{
    display:flex !important;
    flex-direction:column !important;
  }

  .mobileEpisodeTopOverlay .episodeNavRow{
    order:1 !important;
    margin-bottom:10px !important;
  }

  .mobileInlineSearch{
    order:2 !important;
    margin-top:0 !important;
  }

  /* Lock visible hierarchy */
  .mobileEpisodeTopOverlay .btn.primary{
    transform:scale(1.01);
  }
}


/* =========================================================
   Mobile consistency: top nav everywhere + Other drawer
   ========================================================= */
@media (max-width:900px){
  body.appMobileReady{
    padding-bottom:108px !important;
    background:#05080d !important;
  }

  .wrap{
    max-width:560px !important;
    padding:10px 10px 112px !important;
  }

  /* Always show the same top block on every episode/list page */
  .mobileEpisodeTopOverlay{
    display:flex !important;
    flex-direction:column !important;
    position:sticky !important;
    top:max(8px, env(safe-area-inset-top)) !important;
    z-index:3000 !important;
    margin:0 0 10px !important;
    padding:8px !important;
    border-radius:22px !important;
    background:linear-gradient(180deg, rgba(12,23,35,.98), rgba(6,12,19,.98)) !important;
    border:1px solid rgba(255,255,255,.13) !important;
    box-shadow:0 12px 34px rgba(0,0,0,.42) !important;
    backdrop-filter:blur(16px);
  }

  .mobileEpisodeTopOverlay .episodeNavRow{
    order:1 !important;
    display:grid !important;
    grid-template-columns:1fr 1.06fr 1fr !important;
    gap:8px !important;
    margin:0 0 10px !important;
    padding:0 !important;
    background:transparent !important;
    position:static !important;
  }

  .mobileEpisodeTopOverlay .btn{
    min-height:74px !important;
    border-radius:17px !important;
    padding:8px 6px !important;
    color:#fff !important;
    background:rgba(255,255,255,.025) !important;
    border:1px solid rgba(255,255,255,.10) !important;
    font-size:15px !important;
    font-weight:800 !important;
    line-height:1.12 !important;
  }

  .mobileEpisodeTopOverlay .btn.primary{
    border-color:rgba(14,165,233,.9) !important;
    background:linear-gradient(180deg, rgba(6,40,62,.92), rgba(8,26,39,.92)) !important;
  }

  .mobileInlineSearch{
    order:2 !important;
    display:grid !important;
    grid-template-columns:auto 1fr !important;
    align-items:center !important;
    gap:10px !important;
    min-height:54px !important;
    margin:0 !important;
    padding:0 14px !important;
    border-radius:16px !important;
    border:1px solid rgba(255,255,255,.12) !important;
    background:rgba(5,7,16,.72) !important;
  }

  .mobileInlineSearch input{
    min-height:50px !important;
    border:0 !important;
    padding:0 !important;
    background:transparent !important;
    font-size:18px !important;
    color:#fff !important;
  }

  .mobileInlineSearch span{
    font-size:25px !important;
    color:rgba(255,255,255,.58) !important;
  }

  /* Keep the episode list as the main visible panel when navigating episodes */
  .episodeNavigator{
    display:block !important;
    order:6 !important;
    margin-top:12px !important;
    border-radius:18px !important;
    background:linear-gradient(180deg, rgba(13,24,36,.98), rgba(7,13,21,.98)) !important;
  }

  .episodeNavigator .episodeNavRow,
  .episodeNavigator > .pad > .episodeSearchWrap{
    display:none !important;
  }

  .episodeNavigator .timelineHead.compact{
    display:block !important;
  }

  .episodeNavigator .kicker{
    color:#14b8ff !important;
    font-size:22px !important;
    font-weight:850 !important;
  }

  .episodeNavigator .sideTitle{
    font-size:34px !important;
    line-height:1.1 !important;
  }

  .episodeNavigator .timelineHead.compact::after{
    content:"";
    display:block;
    margin-top:16px;
    margin-bottom:12px;
    color:#7dd3fc;
    font-size:21px;
    font-weight:850;
  }

  .episodeNavigatorList{
    max-height:none !important;
    overflow:visible !important;
    display:flex !important;
    flex-direction:column !important;
    gap:12px !important;
    padding-right:0 !important;
  }

  .episodeNavigator .railItem{
    grid-template-columns:128px 1fr !important;
    gap:14px !important;
    min-height:124px !important;
    padding:14px !important;
    border-radius:18px !important;
    background:rgba(255,255,255,.04) !important;
    border:1px solid rgba(255,255,255,.10) !important;
  }

  .episodeNavigator .railItem.is-current{
    border:3px solid rgba(56,189,248,.9) !important;
    background:linear-gradient(135deg, rgba(56,189,248,.17), rgba(255,255,255,.045)) !important;
  }

  .episodeNavigator .railTitle{
    font-size:23px !important;
    line-height:1.12 !important;
  }

  .episodeNavigator .railKicker{
    font-size:20px !important;
    color:#22c3ff !important;
  }

  .nowPlayingText{
    font-size:24px !important;
    margin-top:8px !important;
    color:rgba(255,255,255,.64) !important;
  }

  /* Bottom nav with Other */
  .mobileBottomNav{
    display:grid !important;
    grid-template-columns:repeat(3,1fr) !important;
  }

  .mobileBottomNav button,
  .mobileBottomNav a{
    appearance:none !important;
    border:0 !important;
    min-height:58px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:3px !important;
    border-radius:18px !important;
    background:transparent !important;
    color:rgba(255,255,255,.68) !important;
    font-size:13px !important;
    font-weight:650 !important;
    font-family:inherit !important;
  }

  .mobileBottomNav button span,
  .mobileBottomNav a span{
    font-size:25px !important;
    line-height:1 !important;
  }

  .mobileBottomNav .mobileNavEpisodes{
    color:#14b8ff !important;
    background:rgba(14,165,233,.12) !important;
  }

  .mobileOtherPanel{
    position:fixed;
    left:10px;
    right:10px;
    bottom:calc(max(10px, env(safe-area-inset-bottom)) + 88px);
    z-index:3100;
    max-width:540px;
    margin:0 auto;
    padding:18px;
    border-radius:22px;
    border:1px solid rgba(255,255,255,.14);
    background:linear-gradient(180deg, rgba(13,24,36,.98), rgba(6,12,19,.98));
    box-shadow:0 -18px 54px rgba(0,0,0,.55);
    backdrop-filter:blur(18px);
  }
  .mobileOtherPanel[hidden]{display:none !important;}

  .mobileOtherHead{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:14px;
  }

  .mobileOtherHead strong{
    font-size:22px;
  }

  .mobileOtherHead button{
    appearance:none;
    border:0;
    background:transparent;
    color:rgba(255,255,255,.74);
    font-size:34px;
    line-height:1;
  }

  .mobileOtherItem{
    display:grid;
    grid-template-columns:52px 1fr auto;
    align-items:center;
    gap:12px;
    min-height:76px;
    margin-top:10px;
    padding:12px;
    border-radius:16px;
    background:rgba(255,255,255,.055);
    border:1px solid rgba(255,255,255,.06);
  }

  .mobileOtherItem > span{
    font-size:34px;
    color:#a78bfa;
    text-align:center;
  }

  .mobileOtherItem:nth-of-type(2) > span{
    color:#86efac;
  }

  .mobileOtherItem strong{
    display:block;
    font-size:18px;
    color:#fff;
  }

  .mobileOtherItem small{
    display:block;
    margin-top:4px;
    color:rgba(255,255,255,.64);
    font-size:14px;
  }

  .mobileOtherItem > b{
    color:rgba(255,255,255,.72);
    font-size:34px;
  }
}

@media (min-width:901px){
  .mobileOtherPanel{display:none !important;}
}


/* =========================================================
   Consistent mobile layout: video first, controls/search below
   ========================================================= */
@media (max-width:900px){
  body.appMobileReady{
    background:#05080d !important;
    padding-top:0 !important;
    padding-bottom:108px !important;
  }

  .topbar{
    display:none !important;
  }

  .wrap{
    max-width:560px !important;
    margin:0 auto !important;
    padding:10px 10px 112px !important;
  }

  .watchLayout,
  .watchLayout.homeLayout{
    display:flex !important;
    flex-direction:column !important;
    gap:0 !important;
    margin:0 !important;
    padding:0 !important;
  }

  .watchLayout > div:first-child{
    display:flex !important;
    flex-direction:column !important;
    gap:0 !important;
    margin:0 !important;
    padding:0 !important;
  }

  .watchLayout > div:first-child > div[style*="height:12px"]{
    display:none !important;
  }

  .watchLayout > div:first-child > .card:not(.mobileEpisodeInfo):not(.appSearchResults){
    display:none !important;
  }

  .heroCard{
    display:none !important;
  }

  /* Remove top navigation/search from mobile. Video is always the entry point. */
  .mobileEpisodeTopOverlay{
    display:none !important;
  }

  .playerWrap{
    order:1 !important;
    margin:0 !important;
    border-radius:18px 18px 0 0 !important;
    border:1px solid rgba(255,255,255,.13) !important;
    border-bottom:0 !important;
    overflow:hidden !important;
    box-shadow:0 18px 42px rgba(0,0,0,.42) !important;
  }

  .player{
    aspect-ratio:16/9 !important;
    padding-top:0 !important;
  }

  .videoPosterLabel{
    display:none !important;
  }

  .playBtn,
  .rt-video-play{
    width:86px !important;
    height:86px !important;
    border-radius:999px !important;
    background:rgba(0,0,0,.55) !important;
    color:#fff !important;
    border:1px solid rgba(255,255,255,.18) !important;
    box-shadow:0 16px 36px rgba(0,0,0,.45) !important;
    font-size:36px !important;
  }

  /* Always-show navigation and search BELOW the video. */
  .belowVideoMobileControls{
    order:2 !important;
    display:flex !important;
    flex-direction:column !important;
    gap:10px !important;
    margin:0 0 10px !important;
    padding:8px !important;
    border-radius:0 0 22px 22px !important;
    background:linear-gradient(180deg, rgba(12,23,35,.98), rgba(6,12,19,.98)) !important;
    border:1px solid rgba(255,255,255,.13) !important;
    border-top:0 !important;
    box-shadow:0 12px 34px rgba(0,0,0,.35) !important;
  }

  .belowVideoMobileControls .episodeNavRow{
    display:grid !important;
    grid-template-columns:1fr 1.06fr 1fr !important;
    gap:8px !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    position:static !important;
  }

  .belowVideoMobileControls .btn{
    min-height:72px !important;
    border-radius:17px !important;
    padding:8px 6px !important;
    color:#fff !important;
    background:rgba(255,255,255,.025) !important;
    border:1px solid rgba(255,255,255,.10) !important;
    font-size:15px !important;
    font-weight:800 !important;
    line-height:1.12 !important;
    box-shadow:none !important;
  }

  .belowVideoMobileControls .btn.primary{
    border-color:rgba(14,165,233,.9) !important;
    background:linear-gradient(180deg, rgba(6,40,62,.92), rgba(8,26,39,.92)) !important;
  }

  .belowVideoMobileControls .btn.disabled{
    opacity:.55 !important;
  }

  .belowVideoMobileControls .btn span{
    margin-top:8px !important;
    color:rgba(255,255,255,.62) !important;
    font-size:13px !important;
    font-weight:650 !important;
  }

  .belowVideoSearch,
  .mobileInlineSearch.belowVideoSearch{
    display:grid !important;
    grid-template-columns:auto 1fr !important;
    align-items:center !important;
    gap:10px !important;
    min-height:54px !important;
    margin:0 !important;
    padding:0 14px !important;
    border-radius:16px !important;
    border:1px solid rgba(255,255,255,.12) !important;
    background:rgba(5,7,16,.72) !important;
  }

  .belowVideoSearch span{
    font-size:25px !important;
    color:rgba(255,255,255,.58) !important;
  }

  .belowVideoSearch input{
    min-height:50px !important;
    border:0 !important;
    padding:0 !important;
    background:transparent !important;
    font-size:18px !important;
    color:#fff !important;
    outline:0 !important;
  }

  .belowVideoSearch input::placeholder{
    color:rgba(255,255,255,.58) !important;
  }

  .mobileEpisodeInfo{
    order:3 !important;
    margin:0 0 10px !important;
    border-radius:18px !important;
  }

  .appSearchResults{
    order:0 !important;
    margin:0 0 10px !important;
  }

  .episodeNavigator{
    display:block !important;
    order:6 !important;
    margin-top:12px !important;
    border-radius:18px !important;
    background:linear-gradient(180deg, rgba(13,24,36,.98), rgba(7,13,21,.98)) !important;
  }

  .episodeNavigator .episodeNavRow,
  .episodeNavigator > .pad > .episodeSearchWrap{
    display:none !important;
  }

  .episodeNavigator .timelineHead.compact{
    display:block !important;
  }

  .episodeNavigator .kicker{
    color:#14b8ff !important;
    font-size:22px !important;
    font-weight:850 !important;
  }

  .episodeNavigator .sideTitle{
    font-size:34px !important;
    line-height:1.1 !important;
  }

  .episodeNavigator .timelineHead.compact::after{
    content:"";
    display:block;
    margin-top:16px;
    margin-bottom:12px;
    color:#7dd3fc;
    font-size:21px;
    font-weight:850;
  }

  .episodeNavigatorList{
    max-height:none !important;
    overflow:visible !important;
    display:flex !important;
    flex-direction:column !important;
    gap:12px !important;
    padding-right:0 !important;
  }

  .episodeNavigator .railItem{
    grid-template-columns:128px 1fr !important;
    gap:14px !important;
    min-height:124px !important;
    padding:14px !important;
    border-radius:18px !important;
    background:rgba(255,255,255,.04) !important;
    border:1px solid rgba(255,255,255,.10) !important;
  }

  .episodeNavigator .railItem.is-current{
    border:3px solid rgba(56,189,248,.9) !important;
    background:linear-gradient(135deg, rgba(56,189,248,.17), rgba(255,255,255,.045)) !important;
  }

  .episodeNavigator .railTitle{
    font-size:23px !important;
    line-height:1.12 !important;
  }

  .episodeNavigator .railKicker{
    font-size:20px !important;
    color:#22c3ff !important;
  }

  .nowPlayingText{
    font-size:24px !important;
    margin-top:8px !important;
    color:rgba(255,255,255,.64) !important;
  }

  .commentsToggleWrap,
  .commentsCard{
    order:8 !important;
  }

  /* Bottom nav: Home / Episodes / Other */
  .mobileBottomNav{
    display:grid !important;
    position:fixed !important;
    left:10px !important;
    right:10px !important;
    bottom:max(10px, env(safe-area-inset-bottom)) !important;
    max-width:540px !important;
    margin:0 auto !important;
    z-index:3000 !important;
    grid-template-columns:repeat(3,1fr) !important;
    padding:9px 10px !important;
    border-radius:24px !important;
    background:linear-gradient(180deg, rgba(13,24,36,.96), rgba(6,12,19,.96)) !important;
    border:1px solid rgba(255,255,255,.13) !important;
    backdrop-filter:blur(18px);
    box-shadow:0 -16px 44px rgba(0,0,0,.42) !important;
  }

  .mobileBottomNav button,
  .mobileBottomNav a{
    appearance:none !important;
    border:0 !important;
    min-height:58px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:3px !important;
    border-radius:18px !important;
    background:transparent !important;
    color:rgba(255,255,255,.68) !important;
    font-size:13px !important;
    font-weight:650 !important;
    font-family:inherit !important;
  }

  .mobileBottomNav button span,
  .mobileBottomNav a span{
    font-size:25px !important;
    line-height:1 !important;
  }

  .mobileBottomNav .mobileNavEpisodes{
    color:#14b8ff !important;
    background:rgba(14,165,233,.12) !important;
  }

  .mobileOtherPanel{
    position:fixed;
    left:10px;
    right:10px;
    bottom:calc(max(10px, env(safe-area-inset-bottom)) + 88px);
    z-index:3100;
    max-width:540px;
    margin:0 auto;
    padding:18px;
    border-radius:22px;
    border:1px solid rgba(255,255,255,.14);
    background:linear-gradient(180deg, rgba(13,24,36,.98), rgba(6,12,19,.98));
    box-shadow:0 -18px 54px rgba(0,0,0,.55);
    backdrop-filter:blur(18px);
  }
  .mobileOtherPanel[hidden]{display:none !important;}

  .mobileOtherHead{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:14px;
  }

  .mobileOtherHead strong{font-size:22px;}

  .mobileOtherHead button{
    appearance:none;
    border:0;
    background:transparent;
    color:rgba(255,255,255,.74);
    font-size:34px;
    line-height:1;
  }

  .mobileOtherItem{
    display:grid;
    grid-template-columns:52px 1fr auto;
    align-items:center;
    gap:12px;
    min-height:76px;
    margin-top:10px;
    padding:12px;
    border-radius:16px;
    background:rgba(255,255,255,.055);
    border:1px solid rgba(255,255,255,.06);
  }

  .mobileOtherItem > span{
    font-size:34px;
    color:#a78bfa;
    text-align:center;
  }
  .mobileOtherItem:nth-of-type(2) > span{color:#86efac;}

  .mobileOtherItem strong{
    display:block;
    font-size:18px;
    color:#fff;
  }

  .mobileOtherItem small{
    display:block;
    margin-top:4px;
    color:rgba(255,255,255,.64);
    font-size:14px;
  }

  .mobileOtherItem > b{
    color:rgba(255,255,255,.72);
    font-size:34px;
  }
}

@media (min-width:901px){
  .belowVideoMobileControls,
  .mobileOtherPanel{display:none !important;}
}


/* =========================================================
   Simple final mobile layout:
   video first, controls/search below, minimal details
   ========================================================= */
@media (max-width:900px){
  html{
    scroll-padding-top:0 !important;
  }

  body.appMobileReady{
    background:#05080d !important;
    padding:0 0 108px !important;
  }

  .topbar,
  .mobileEpisodeTopOverlay,
  .heroCard{
    display:none !important;
  }

  .wrap{
    max-width:560px !important;
    margin:0 auto !important;
    padding:10px 10px 112px !important;
  }

  .watchLayout,
  .watchLayout.homeLayout,
  .watchLayout > div:first-child{
    display:flex !important;
    flex-direction:column !important;
    gap:0 !important;
    margin:0 !important;
    padding:0 !important;
  }

  .watchLayout > div:first-child > div[style*="height:12px"],
  .watchLayout > div:first-child > .card:not(.mobileEpisodeInfo):not(.appSearchResults){
    display:none !important;
  }

  /* 1. Video is always the first main item */
  .playerWrap{
    order:1 !important;
    margin:0 !important;
    border-radius:18px 18px 0 0 !important;
    border:1px solid rgba(255,255,255,.13) !important;
    border-bottom:0 !important;
    overflow:hidden !important;
    box-shadow:0 18px 42px rgba(0,0,0,.42) !important;
    background:#000 !important;
  }

  .player{
    aspect-ratio:16/9 !important;
    padding-top:0 !important;
  }

  .videoPosterLabel{
    display:none !important;
  }

  .videoPoster img,
  .rt-video-thumb{
    object-fit:cover !important;
  }

  .playBtn,
  .rt-video-play{
    width:86px !important;
    height:86px !important;
    border-radius:999px !important;
    background:rgba(0,0,0,.55) !important;
    color:#fff !important;
    border:1px solid rgba(255,255,255,.18) !important;
    box-shadow:0 16px 36px rgba(0,0,0,.45) !important;
    font-size:36px !important;
  }

  /* 2. Navigation + search directly below video */
  .belowVideoMobileControls{
    order:2 !important;
    display:flex !important;
    flex-direction:column !important;
    gap:10px !important;
    margin:0 0 12px !important;
    padding:10px !important;
    border-radius:0 0 22px 22px !important;
    background:linear-gradient(180deg, rgba(12,23,35,.98), rgba(6,12,19,.98)) !important;
    border:1px solid rgba(255,255,255,.13) !important;
    border-top:0 !important;
    box-shadow:0 12px 34px rgba(0,0,0,.35) !important;
  }

  .belowVideoMobileControls .episodeNavRow{
    display:grid !important;
    grid-template-columns:1fr 1.06fr 1fr !important;
    gap:8px !important;
    margin:0 !important;
    padding:0 !important;
    position:static !important;
    background:transparent !important;
  }

  .belowVideoMobileControls .btn{
    min-height:72px !important;
    border-radius:17px !important;
    padding:8px 6px !important;
    color:#fff !important;
    background:rgba(255,255,255,.025) !important;
    border:1px solid rgba(255,255,255,.10) !important;
    font-size:15px !important;
    font-weight:800 !important;
    line-height:1.12 !important;
    box-shadow:none !important;
  }

  .belowVideoMobileControls .btn.primary{
    border-color:rgba(14,165,233,.9) !important;
    background:linear-gradient(180deg, rgba(6,40,62,.92), rgba(8,26,39,.92)) !important;
  }

  .belowVideoMobileControls .btn.disabled{
    opacity:.55 !important;
  }

  .belowVideoMobileControls .btn span{
    margin-top:8px !important;
    color:rgba(255,255,255,.62) !important;
    font-size:13px !important;
    font-weight:650 !important;
  }

  .belowVideoSearch{
    display:grid !important;
    grid-template-columns:auto 1fr !important;
    align-items:center !important;
    gap:10px !important;
    min-height:54px !important;
    margin:0 !important;
    padding:0 14px !important;
    border-radius:16px !important;
    border:1px solid rgba(255,255,255,.12) !important;
    background:rgba(5,7,16,.72) !important;
  }

  .belowVideoSearch span{
    font-size:25px !important;
    color:rgba(255,255,255,.58) !important;
  }

  .belowVideoSearch input{
    min-height:50px !important;
    border:0 !important;
    padding:0 !important;
    background:transparent !important;
    font-size:18px !important;
    color:#fff !important;
    outline:0 !important;
  }

  .belowVideoSearch input::placeholder{
    color:rgba(255,255,255,.58) !important;
  }

  /* 3. Keep details minimal: title + core action buttons only */
  .mobileEpisodeInfo{
    order:3 !important;
    margin:0 0 12px !important;
    border-radius:18px !important;
    background:linear-gradient(180deg, rgba(7,17,26,.98), rgba(5,10,17,.98)) !important;
    border:1px solid rgba(255,255,255,.10) !important;
  }

  .mobileEpisodeInfo .pad{
    padding:18px 18px 12px !important;
  }

  .appEpisodeTitle{
    font-size:30px !important;
    line-height:1.14 !important;
    margin:0 !important;
  }

  .appMetaLine{
    margin-top:12px !important;
    font-size:20px !important;
  }

  .appActionRow{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:9px !important;
    margin:22px 0 0 !important;
  }

  .appPillBtn{
    min-height:48px !important;
    font-size:15px !important;
  }

  .appDescription,
  .showMoreBtn,
  .continueWatching,
  .progressCard,
  .upNextMini,
  .moreMenu{
    display:none !important;
  }

  /* 4. Episodes list stays clear and consistent */
  .episodeNavigator{
    display:block !important;
    order:6 !important;
    margin-top:12px !important;
    border-radius:18px !important;
    background:linear-gradient(180deg, rgba(13,24,36,.98), rgba(7,13,21,.98)) !important;
  }

  .episodeNavigator .episodeNavRow,
  .episodeNavigator > .pad > .episodeSearchWrap{
    display:none !important;
  }

  .episodeNavigator .kicker{
    color:#14b8ff !important;
    font-size:22px !important;
    font-weight:850 !important;
  }

  .episodeNavigator .sideTitle{
    font-size:34px !important;
    line-height:1.1 !important;
  }

  .episodeNavigator .timelineHead.compact::after{
    content:"";
    display:block;
    margin-top:16px;
    margin-bottom:12px;
    color:#7dd3fc;
    font-size:21px;
    font-weight:850;
  }

  .episodeNavigatorList{
    max-height:none !important;
    overflow:visible !important;
    display:flex !important;
    flex-direction:column !important;
    gap:12px !important;
    padding-right:0 !important;
  }

  .episodeNavigator .railItem{
    grid-template-columns:128px 1fr !important;
    gap:14px !important;
    min-height:124px !important;
    padding:14px !important;
    border-radius:18px !important;
    background:rgba(255,255,255,.04) !important;
    border:1px solid rgba(255,255,255,.10) !important;
  }

  .episodeNavigator .railItem.is-current{
    border:3px solid rgba(56,189,248,.9) !important;
    background:linear-gradient(135deg, rgba(56,189,248,.17), rgba(255,255,255,.045)) !important;
  }

  .episodeNavigator .railTitle{
    font-size:23px !important;
    line-height:1.12 !important;
  }

  .episodeNavigator .railKicker{
    font-size:20px !important;
    color:#22c3ff !important;
  }

  .nowPlayingText{
    font-size:24px !important;
    margin-top:8px !important;
    color:rgba(255,255,255,.64) !important;
  }

  .commentsToggleWrap,
  .commentsCard{
    order:8 !important;
  }

  /* Bottom navigation: Home / Episodes / Other only */
  .mobileBottomNav{
    display:grid !important;
    position:fixed !important;
    left:10px !important;
    right:10px !important;
    bottom:max(10px, env(safe-area-inset-bottom)) !important;
    max-width:540px !important;
    margin:0 auto !important;
    z-index:3000 !important;
    grid-template-columns:repeat(3,1fr) !important;
    padding:9px 10px !important;
    border-radius:24px !important;
    background:linear-gradient(180deg, rgba(13,24,36,.96), rgba(6,12,19,.96)) !important;
    border:1px solid rgba(255,255,255,.13) !important;
    backdrop-filter:blur(18px);
    box-shadow:0 -16px 44px rgba(0,0,0,.42) !important;
  }

  .mobileBottomNav button,
  .mobileBottomNav a{
    appearance:none !important;
    border:0 !important;
    min-height:58px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:3px !important;
    border-radius:18px !important;
    background:transparent !important;
    color:rgba(255,255,255,.68) !important;
    font-size:13px !important;
    font-weight:650 !important;
    font-family:inherit !important;
  }

  .mobileBottomNav button span,
  .mobileBottomNav a span{
    font-size:25px !important;
    line-height:1 !important;
  }

  .mobileBottomNav .mobileNavEpisodes{
    color:#14b8ff !important;
    background:rgba(14,165,233,.12) !important;
  }

  .mobileOtherPanel{
    position:fixed !important;
    left:10px !important;
    right:10px !important;
    bottom:calc(max(10px, env(safe-area-inset-bottom)) + 88px) !important;
    z-index:3100 !important;
    max-width:540px !important;
    margin:0 auto !important;
    padding:18px !important;
    border-radius:22px !important;
    border:1px solid rgba(255,255,255,.14) !important;
    background:linear-gradient(180deg, rgba(13,24,36,.98), rgba(6,12,19,.98)) !important;
    box-shadow:0 -18px 54px rgba(0,0,0,.55) !important;
    backdrop-filter:blur(18px);
  }

  .mobileOtherPanel[hidden]{
    display:none !important;
  }

  .mobileOtherHead{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
    margin-bottom:14px !important;
  }

  .mobileOtherHead strong{
    font-size:22px !important;
  }

  .mobileOtherHead button{
    appearance:none !important;
    border:0 !important;
    background:transparent !important;
    color:rgba(255,255,255,.74) !important;
    font-size:34px !important;
    line-height:1 !important;
  }

  .mobileOtherItem{
    display:grid !important;
    grid-template-columns:52px 1fr auto !important;
    align-items:center !important;
    gap:12px !important;
    min-height:76px !important;
    margin-top:10px !important;
    padding:12px !important;
    border-radius:16px !important;
    background:rgba(255,255,255,.055) !important;
    border:1px solid rgba(255,255,255,.06) !important;
  }

  .mobileOtherItem > span{
    font-size:34px !important;
    color:#a78bfa !important;
    text-align:center !important;
  }

  .mobileOtherItem:nth-of-type(2) > span{
    color:#86efac !important;
  }

  .mobileOtherItem strong{
    display:block !important;
    font-size:18px !important;
    color:#fff !important;
  }

  .mobileOtherItem small{
    display:block !important;
    margin-top:4px !important;
    color:rgba(255,255,255,.64) !important;
    font-size:14px !important;
  }

  .mobileOtherItem > b{
    color:rgba(255,255,255,.72) !important;
    font-size:34px !important;
  }

  .appSearchResults{
    order:0 !important;
    margin:0 0 10px !important;
  }
}

@media (min-width:901px){
  .belowVideoMobileControls,
  .mobileOtherPanel{
    display:none !important;
  }
}

@media (max-width:390px){
  .appEpisodeTitle{
    font-size:26px !important;
  }
  .belowVideoMobileControls .btn{
    min-height:66px !important;
    font-size:13px !important;
  }
  .belowVideoMobileControls .btn span{
    font-size:12px !important;
  }
  .episodeNavigator .railTitle{
    font-size:20px !important;
  }
}


/* Make video-first entry stable on mobile */
@media (max-width:900px){
  html, body{
    scroll-behavior:auto !important;
  }
  .playerWrap{
    scroll-margin-top:0 !important;
  }
  .belowVideoMobileControls{
    scroll-margin-top:0 !important;
  }
}


/* Mobile video-top bugfix */
@media (max-width:900px){
  .episodeNavigator .railItem.is-current,
  .episodeTimelineList .episodeCard.is-current,
  .seasonGrid .tile.is-current,
  .grid .tile.is-current{
    scroll-margin-top:0 !important;
    scroll-margin-bottom:0 !important;
  }
}

/* Duration is hidden until real data exists */
@media (max-width:900px){
  .episodeDuration:empty,
  .durationJoin[hidden]{display:none !important;}
}


/* Final action-state polish */
.appPillBtn.is-active{
  color:#16baff !important;
  border-color:rgba(14,165,233,.75) !important;
  background:rgba(14,165,233,.15) !important;
}


/* Homepage after-state + no duplicate More action */
@media (max-width:900px){
  .appActionRow{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
  .appActionRow .moreBtn{
    display:none !important;
  }
}


/* Ensure below-video navigation is shown on home and all episode pages */
@media (max-width:900px){
  .homeLayout .belowVideoMobileControls,
  .watchLayout .belowVideoMobileControls{
    display:flex !important;
  }
}


/* DEFINITIVE homepage navigation block: never hide this on mobile */
@media (max-width:900px){
  .homeVideoNavigation.forceHomeNav{
    order:2 !important;
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    flex-direction:column !important;
    gap:10px !important;
    margin:0 0 12px !important;
    padding:10px !important;
    border-radius:0 0 22px 22px !important;
    background:linear-gradient(180deg, rgba(12,23,35,.98), rgba(6,12,19,.98)) !important;
    border:1px solid rgba(255,255,255,.13) !important;
    border-top:0 !important;
    box-shadow:0 12px 34px rgba(0,0,0,.35) !important;
  }

  .homeVideoNavigation.forceHomeNav .episodeNavRow{
    display:grid !important;
    visibility:visible !important;
    opacity:1 !important;
    grid-template-columns:1fr 1.06fr 1fr !important;
    gap:8px !important;
    margin:0 !important;
    padding:0 !important;
    position:static !important;
    background:transparent !important;
  }

  .homeVideoNavigation.forceHomeNav .btn{
    min-height:72px !important;
    border-radius:17px !important;
    padding:8px 6px !important;
    color:#fff !important;
    background:rgba(255,255,255,.025) !important;
    border:1px solid rgba(255,255,255,.10) !important;
    font-size:15px !important;
    font-weight:800 !important;
    line-height:1.12 !important;
    box-shadow:none !important;
  }

  .homeVideoNavigation.forceHomeNav .btn.primary{
    border-color:rgba(14,165,233,.9) !important;
    background:linear-gradient(180deg, rgba(6,40,62,.92), rgba(8,26,39,.92)) !important;
  }

  .homeVideoNavigation.forceHomeNav .btn.disabled{
    opacity:.55 !important;
  }

  .homeVideoNavigation.forceHomeNav .btn span{
    margin-top:8px !important;
    color:rgba(255,255,255,.62) !important;
    font-size:13px !important;
    font-weight:650 !important;
  }

  .homeVideoNavigation.forceHomeNav .belowVideoSearch{
    display:grid !important;
    grid-template-columns:auto 1fr !important;
    align-items:center !important;
    gap:10px !important;
    min-height:54px !important;
    margin:0 !important;
    padding:0 14px !important;
    border-radius:16px !important;
    border:1px solid rgba(255,255,255,.12) !important;
    background:rgba(5,7,16,.72) !important;
  }

  .homeVideoNavigation.forceHomeNav .belowVideoSearch input{
    min-height:50px !important;
    border:0 !important;
    padding:0 !important;
    background:transparent !important;
    font-size:18px !important;
    color:#fff !important;
    outline:0 !important;
  }

  .appActionRow{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
  .appActionRow .moreBtn{
    display:none !important;
  }
}


/* Rebuilt homepage mobile navigation: unique classes so old rules cannot hide it */
@media (max-width:900px){
  #simpleHomeMobileNav.simpleHomeMobileNav{
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    flex-direction:column !important;
    order:2 !important;
    gap:10px !important;
    width:100% !important;
    margin:0 0 12px 0 !important;
    padding:10px !important;
    border-radius:0 0 22px 22px !important;
    background:linear-gradient(180deg, rgba(12,23,35,.98), rgba(6,12,19,.98)) !important;
    border:1px solid rgba(255,255,255,.13) !important;
    border-top:0 !important;
    box-shadow:0 12px 34px rgba(0,0,0,.35) !important;
    position:relative !important;
    z-index:5 !important;
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
  }

  #simpleHomeMobileNav .simpleHomeNavRow{
    display:grid !important;
    grid-template-columns:1fr 1.06fr 1fr !important;
    gap:8px !important;
    width:100% !important;
  }

  #simpleHomeMobileNav .simpleHomeNavBtn{
    min-height:72px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
    border-radius:17px !important;
    padding:8px 6px !important;
    color:#fff !important;
    background:rgba(255,255,255,.025) !important;
    border:1px solid rgba(255,255,255,.10) !important;
    font-size:15px !important;
    font-weight:800 !important;
    line-height:1.12 !important;
    text-align:center !important;
    text-decoration:none !important;
  }

  #simpleHomeMobileNav .simpleHomeNavBtn.is-current{
    border-color:rgba(14,165,233,.9) !important;
    background:linear-gradient(180deg, rgba(6,40,62,.92), rgba(8,26,39,.92)) !important;
  }

  #simpleHomeMobileNav .simpleHomeNavBtn.is-disabled{
    opacity:.55 !important;
  }

  #simpleHomeMobileNav .simpleHomeNavBtn span{
    color:rgba(255,255,255,.62) !important;
    font-size:13px !important;
    font-weight:650 !important;
  }

  #simpleHomeMobileNav .simpleHomeSearch{
    display:grid !important;
    grid-template-columns:auto 1fr !important;
    align-items:center !important;
    gap:10px !important;
    min-height:54px !important;
    width:100% !important;
    margin:0 !important;
    padding:0 14px !important;
    border-radius:16px !important;
    border:1px solid rgba(255,255,255,.12) !important;
    background:rgba(5,7,16,.72) !important;
  }

  #simpleHomeMobileNav .simpleHomeSearch span{
    color:rgba(255,255,255,.58) !important;
    font-size:25px !important;
  }

  #simpleHomeMobileNav .simpleHomeSearch input[type="search"]{
    min-height:50px !important;
    border:0 !important;
    padding:0 !important;
    background:transparent !important;
    font-size:18px !important;
    color:#fff !important;
    outline:0 !important;
  }
}

@media (min-width:901px){
  #simpleHomeMobileNav.simpleHomeMobileNav{display:none !important;}
}


/* Lent/Christmas top landing + comments + continue watching card */
.continueWatchingCard[hidden],
.commentsCard[hidden]{display:none !important;}

.continueWatchingCard{
  margin:12px 0;
}

.continueWatchingCard .continueHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.continueWatchingCard .continueTitle{
  margin-top:4px;
  font-weight:800;
  color:#fff;
}

.continueProgress{
  height:6px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  overflow:hidden;
  margin-top:12px;
}

.continueProgress span{
  display:block;
  width:18%;
  height:100%;
  background:#14b8ff;
  border-radius:999px;
}

@media (max-width:900px){
  .continueWatchingCard{
    order:4 !important;
    border-radius:18px !important;
    background:linear-gradient(180deg, rgba(13,24,36,.98), rgba(7,13,21,.98)) !important;
    border:1px solid rgba(255,255,255,.10) !important;
  }

  .episodeNavigator{
    order:6 !important;
  }

  .commentsToggleWrap,
  .commentsCard{
    order:5 !important;
  }

  .commentsToggle{
    min-height:48px !important;
    padding:0 18px !important;
  }
}


/* Desktop: Continue Watching belongs below video/navigation and above episode list */
@media (min-width:901px){
  .watchLayout{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:14px;
  }

  .watchLayout > div:first-child{
    grid-column:1 / -1;
  }

  .watchLayout > .continueWatchingCard{
    grid-column:1 / -1;
    margin:0 0 0 0;
  }

  .watchLayout > .episodeNavigator{
    grid-column:1 / -1;
    position:static !important;
    top:auto !important;
  }

  .episodeNavigator .episodeNavigatorList,
  .episodeNavigator .railList{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }

  .episodeNavigator .railItem{
    min-height:112px;
  }
}

/* Mobile: continue watching stays below episode description and above comments/list */
@media (max-width:900px){
  .watchLayout > .continueWatchingCard{
    order:4 !important;
  }

  .watchLayout > .episodeNavigator{
    order:6 !important;
  }
}


/* Final comments toggle fix */
.commentsCard[hidden],
.commentsCard.is-hidden{
  display:none !important;
}

.commentsCard.is-open{
  display:block !important;
}

@media (max-width:900px){
  .commentsToggleWrap{
    display:flex !important;
    justify-content:center !important;
    margin:14px 0 !important;
    order:5 !important;
  }

  .commentsToggle{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:48px !important;
    padding:0 20px !important;
    border-radius:16px !important;
    border:1px solid rgba(14,165,233,.55) !important;
    background:rgba(14,165,233,.10) !important;
    color:#fff !important;
    font-weight:850 !important;
  }

  .commentsCard{
    order:5 !important;
    margin-top:0 !important;
  }
}


/* Remove legacy top continue-watching permanently */
.continueWatching,
#continueWatching,
#continueWatchingLink{
  display:none !important;
}

/* Desktop always starts at top/video */
html, body{
  scroll-behavior:auto !important;
}

.playerWrap{
  scroll-margin-top:0 !important;
}


/* Rebuilt comments component: independent from old comments CSS/JS */
.rtCommentsBlock{
  margin:14px 0;
}

.rtCommentsPanel[hidden]{
  display:none !important;
}

.rtCommentsPanel.is-open{
  display:block !important;
}

.rtCommentsToggle{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:48px !important;
  padding:0 20px !important;
  border-radius:16px !important;
  border:1px solid rgba(14,165,233,.55) !important;
  background:rgba(14,165,233,.10) !important;
  color:#fff !important;
  font-weight:850 !important;
}

@media (max-width:900px){
  .rtCommentsBlock{
    order:5 !important;
    display:block !important;
    margin:14px 0 !important;
  }

  .rtCommentsToggle{
    width:auto !important;
    margin:0 auto !important;
  }

  .rtCommentsPanel{
    margin-top:12px !important;
  }
}


/* Desktop/tablet: make the video fill the page width and remove the blank right-side layout */
@media (min-width:901px){
  .watchLayout,
  .watchLayout.homeLayout{
    display:flex !important;
    flex-direction:column !important;
    gap:14px !important;
    align-items:stretch !important;
  }

  .watchLayout > div:first-child,
  .watchLayout > .continueWatchingCard,
  .watchLayout > .episodeNavigator{
    width:100% !important;
    max-width:none !important;
  }

  .playerWrap{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
  }

  .player{
    width:100% !important;
    aspect-ratio:16 / 9 !important;
  }

  .videoShell,
  .videoPoster,
  .videoPoster img,
  .managedPlayerRoot iframe,
  .player iframe{
    width:100% !important;
    height:100% !important;
  }

  .videoPoster img{
    object-fit:cover !important;
  }

  .homeVideoNavigation.forceHomeNav,
  #simpleHomeMobileNav.simpleHomeMobileNav{
    display:none !important;
  }

  .belowVideoMobileControls{
    display:flex !important;
    flex-direction:column !important;
    gap:10px !important;
    padding:10px !important;
    border-radius:0 0 22px 22px !important;
    background:linear-gradient(180deg, rgba(12,23,35,.98), rgba(6,12,19,.98)) !important;
    border:1px solid rgba(255,255,255,.13) !important;
    border-top:0 !important;
  }

  .belowVideoMobileControls .episodeNavRow{
    display:grid !important;
    grid-template-columns:1fr 1fr 1fr !important;
    gap:10px !important;
  }

  .belowVideoMobileControls .episodeNavRow .btn{
    min-height:58px !important;
    justify-content:center !important;
    text-align:center !important;
  }

  .belowVideoSearch{
    display:grid !important;
    grid-template-columns:auto 1fr !important;
    align-items:center !important;
    gap:10px !important;
    min-height:50px !important;
    padding:0 14px !important;
    border-radius:16px !important;
    border:1px solid rgba(255,255,255,.12) !important;
    background:rgba(5,7,16,.72) !important;
  }

  .belowVideoSearch input{
    border:0 !important;
    background:transparent !important;
    color:#fff !important;
    outline:0 !important;
    font-size:16px !important;
  }

  .episodeNavigator .episodeNavigatorList,
  .episodeNavigator .railList{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:12px !important;
  }
}

/* Top of page should place the video immediately in view */
html, body{
  scroll-behavior:auto !important;
}


/* No-flicker video-first layout */
html, body{
  scroll-behavior:auto !important;
}
.episodeNavigator .railItem.is-current,
.episodeTimelineList .episodeCard.is-current,
.seasonGrid .tile.is-current,
.grid .tile.is-current{
  scroll-margin-top:0 !important;
}


/* Direct reliable video iframe fallback */
.videoShell,
#videoShell{
  width:100% !important;
  height:100% !important;
}

.rtDirectVideoIframe{
  display:block !important;
  width:100% !important;
  height:100% !important;
  aspect-ratio:16 / 9;
  border:0 !important;
  background:#000 !important;
}

.player .rtDirectVideoIframe,
.playerWrap .rtDirectVideoIframe{
  position:absolute;
  inset:0;
}


/* One-click immersive fullscreen overlay player */
html.rt-video-open,
body.rt-video-open{
  overflow:hidden !important;
}

.rtVideoOverlay{
  position:fixed;
  inset:0;
  background:#000;
  z-index:999999;
  display:none;
  align-items:center;
  justify-content:center;
}

.rtVideoOverlay.is-open{
  display:flex;
}

.rtVideoOverlayInner{
  position:relative;
  width:100vw;
  height:100vh;
  background:#000;
}

.rtVideoOverlayFrame{
  width:100%;
  height:100%;
  border:0;
  display:block;
}

.rtVideoOverlayClose{
  position:absolute;
  top:max(14px, env(safe-area-inset-top));
  right:max(14px, env(safe-area-inset-right));
  z-index:2;
  width:52px;
  height:52px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(0,0,0,.55);
  color:#fff;
  font-size:28px;
  font-weight:800;
  cursor:pointer;
}

#videoShell,
.videoShell,
#videoPoster,
.videoPoster{
  cursor:pointer !important;
}


/* Fullscreen player navigation controls */
.rtVideoOverlay{
  position:fixed;
  inset:0;
  background:#000;
  z-index:999999;
  display:none;
  align-items:center;
  justify-content:center;
}

.rtVideoOverlay.is-open{
  display:flex;
}

.rtVideoOverlayInner,
.rtVideoOverlayFrame,
.rtVideoOverlayIframeFallback{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  background:#000;
}

.rtVideoTapLayer{
  position:absolute;
  inset:0;
  z-index:2;
}

.rtVideoOverlayClose{
  position:absolute;
  top:max(14px, env(safe-area-inset-top));
  right:max(14px, env(safe-area-inset-right));
  z-index:5;
  width:52px;
  height:52px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(0,0,0,.62);
  color:#fff;
  font-size:28px;
  font-weight:800;
  cursor:pointer;
}

.rtVideoOverlayControls{
  position:absolute;
  left:max(14px, env(safe-area-inset-left));
  right:max(14px, env(safe-area-inset-right));
  bottom:max(18px, env(safe-area-inset-bottom));
  z-index:5;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:12px;
  align-items:center;
  padding:12px;
  border-radius:22px;
  background:rgba(0,0,0,.64);
  border:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(14px);
}

.rtVideoOverlayControls button{
  min-height:48px;
  padding:0 16px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(14,165,233,.18);
  color:#fff;
  font-weight:850;
  cursor:pointer;
}

.rtVideoOverlayControls button:disabled{
  opacity:.35;
  cursor:not-allowed;
}

.rtVideoNow{
  min-width:0;
  color:#fff;
  text-align:center;
}

.rtVideoNow strong,
.rtVideoNow span{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.rtVideoNow span{
  color:rgba(255,255,255,.68);
  font-size:13px;
  margin-top:3px;
}

.rtVideoOverlay .rtVideoControl{
  opacity:0;
  transform:translateY(8px);
  pointer-events:none;
  transition:opacity .25s ease, transform .25s ease;
}

.rtVideoOverlay.controls-visible .rtVideoControl,
.rtVideoOverlay:hover .rtVideoControl{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}

@media (max-width:700px){
  .rtVideoOverlayControls{
    grid-template-columns:1fr 1fr;
  }

  .rtVideoNow{
    grid-column:1 / -1;
    grid-row:1;
  }

  .rtVideoPrevBtn{grid-column:1; grid-row:2;}
  .rtVideoNextBtn{grid-column:2; grid-row:2;}
}


/* YouTube-style fullscreen control behaviour */
.rtVideoTapLayer{
  position:absolute !important;
  inset:0 !important;
  z-index:2 !important;
  pointer-events:auto !important;
  background:transparent !important;
}

.rtVideoOverlayInner,
.rtVideoOverlayFrame,
.rtVideoOverlayIframeFallback{
  z-index:1 !important;
}

.rtVideoOverlayClose,
.rtVideoOverlayControls{
  z-index:6 !important;
}

.rtVideoOverlay .rtVideoControl{
  opacity:0 !important;
  transform:translateY(8px) !important;
  pointer-events:none !important;
  transition:opacity .18s ease, transform .18s ease !important;
}

.rtVideoOverlay.controls-visible .rtVideoControl{
  opacity:1 !important;
  transform:translateY(0) !important;
  pointer-events:auto !important;
}

/* Share sheet */
.rtShareSheet[hidden]{
  display:none !important;
}

.rtShareSheet{
  position:fixed;
  inset:0;
  z-index:1000000;
}

.rtShareBackdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.58);
}

.rtSharePanel{
  position:absolute;
  left:50%;
  bottom:max(18px, env(safe-area-inset-bottom));
  transform:translateX(-50%);
  width:min(560px, calc(100vw - 24px));
  border-radius:24px;
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(180deg, rgba(13,24,36,.98), rgba(6,12,19,.98));
  box-shadow:0 24px 70px rgba(0,0,0,.55);
  padding:18px;
  color:#fff;
}

.rtShareHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}

.rtShareHead strong{
  font-size:24px;
}

.rtShareHead button{
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:28px;
  line-height:1;
}

.rtShareButtons{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-bottom:14px;
}

.rtShareOption{
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.06);
  color:#fff;
  font-weight:800;
}

.rtShareCopyRow{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
}

.rtShareCopyRow input{
  min-width:0;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.28);
  color:#fff;
  padding:0 12px;
  min-height:48px;
}

.rtShareCopyRow button{
  border-radius:14px;
  border:1px solid rgba(14,165,233,.55);
  background:rgba(14,165,233,.16);
  color:#fff;
  font-weight:850;
  padding:0 14px;
}

.rtShareStatus{
  margin-top:10px;
  min-height:20px;
  color:#7dd3fc;
  font-weight:700;
}

@media (max-width:520px){
  .rtShareButtons{
    grid-template-columns:repeat(2,1fr);
  }
}


/* Final fullscreen tap behaviour and Other panel restore */
.rtVideoTapLayer{
  pointer-events:auto !important;
  z-index:4 !important;
}

.rtVideoOverlayInner,
.rtVideoOverlayFrame,
.rtVideoOverlayIframeFallback{
  z-index:1 !important;
}

.rtVideoOverlay .rtVideoControl{
  z-index:7 !important;
}

.mobileOtherPanel.is-open{
  display:block !important;
}

@media (max-width:900px){
  .mobileOtherPanel.is-open{
    position:fixed !important;
    left:10px !important;
    right:10px !important;
    bottom:calc(max(10px, env(safe-area-inset-bottom)) + 88px) !important;
    z-index:5000 !important;
  }

  .mobileNavOther{
    pointer-events:auto !important;
  }
}


/* Fullscreen controls now stay visible for 5 seconds and alternate taps */
.rtVideoOverlay .rtVideoControl{
  transition:opacity .2s ease, transform .2s ease !important;
}


/* Seamless fullscreen player: tap video to reveal, centre button to play/pause */
.rtVideoCenterPlay{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%) scale(1) !important;
  z-index:7 !important;
  width:84px;
  height:84px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(0,0,0,.58);
  color:#fff;
  font-size:34px;
  font-weight:900;
  display:grid;
  place-items:center;
}

.rtVideoOverlay.controls-visible .rtVideoCenterPlay{
  opacity:1 !important;
  pointer-events:auto !important;
}

/* Mobile landscape: keep the immersive player filling the phone */
@media (max-width:900px) and (orientation:landscape){
  html.rt-video-open,
  body.rt-video-open{
    width:100vw !important;
    height:100vh !important;
    overflow:hidden !important;
    background:#000 !important;
  }

  .rtVideoOverlay{
    position:fixed !important;
    inset:0 !important;
    width:100vw !important;
    height:100vh !important;
    min-height:100vh !important;
    background:#000 !important;
  }

  .rtVideoOverlayInner,
  .rtVideoOverlayFrame,
  .rtVideoOverlayIframeFallback{
    width:100vw !important;
    height:100vh !important;
  }

  .rtVideoOverlayControls{
    left:max(10px, env(safe-area-inset-left)) !important;
    right:max(10px, env(safe-area-inset-right)) !important;
    bottom:max(10px, env(safe-area-inset-bottom)) !important;
    padding:8px !important;
  }

  .rtVideoOverlayClose{
    top:max(8px, env(safe-area-inset-top)) !important;
    right:max(8px, env(safe-area-inset-right)) !important;
  }
}


/* Final mobile fullscreen fixes */
html.rt-video-open,
body.rt-video-open{
  overflow:hidden !important;
  overscroll-behavior:none !important;
  touch-action:none !important;
  background:#000 !important;
}

.rtVideoOverlay{
  position:fixed !important;
  left:0 !important;
  top:0 !important;
  width:var(--rt-vw, 100vw) !important;
  height:var(--rt-vh, 100dvh) !important;
  min-height:100dvh !important;
  background:#000 !important;
  z-index:2147483647 !important;
  overflow:hidden !important;
}

.rtVideoOverlayInner,
.rtVideoOverlayFrame,
.rtVideoOverlayIframeFallback,
#rtVideoOverlayPlayer,
#rtVideoOverlayPlayer iframe{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  border:0 !important;
  background:#000 !important;
}

.rtVideoOverlayIframeFallback,
#rtVideoOverlayPlayer iframe{
  object-fit:contain !important;
}

.rtVideoFullscreenBtn{
  min-height:48px;
  padding:0 14px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.10);
  color:#fff;
  font-weight:850;
}

@media (max-width:900px) and (orientation:landscape){
  .rtVideoOverlay{
    width:100vw !important;
    height:100vh !important;
    height:100dvh !important;
  }

  .rtVideoOverlayControls{
    grid-template-columns:auto 1fr auto auto !important;
    bottom:max(8px, env(safe-area-inset-bottom)) !important;
    padding:8px !important;
  }

  .rtVideoNow{
    min-width:0 !important;
  }

  .rtVideoCenterPlay{
    width:72px !important;
    height:72px !important;
    font-size:30px !important;
  }
}

@media (max-width:700px){
  .rtVideoOverlayControls{
    grid-template-columns:1fr 1fr !important;
  }
  .rtVideoNow{
    grid-column:1 / -1 !important;
    grid-row:1 !important;
  }
  .rtVideoPrevBtn{grid-column:1 !important; grid-row:2 !important;}
  .rtVideoNextBtn{grid-column:2 !important; grid-row:2 !important;}
  .rtVideoFullscreenBtn{grid-column:1 / -1 !important; grid-row:3 !important;}
}


/* === Old working player CSS transplanted / overrides only === */
/* Video */
.playerWrap{
  width:100%;
  background: #000;
  border-radius: 16px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
}
.player{
  position: relative;
  padding-top: 56.25%; /* 16:9 */
}
.player iframe, .player #ytplayer{
  position:absolute; inset:0;
  width:100%; height:100%;
}
.fullscreenHint{
  margin-top:10px;
  color: var(--muted);
  font-size: 12px;
}
.footer{
  margin-top:20px;
  color: var(--muted);
  font-size: 12px;
  text-align:center;
}
.formRow{display:flex; flex-direction:column; gap:6px; margin-bottom:10px}
input, select, textarea{
  width:100%;
  padding:10px 12px;
  border-radius: 12px;
  border:1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.20);
  color: var(--text);
  outline:none;
}
label{font-size:12px; color: var(--muted)}
.notice{
  padding:10px 12px;
  border-radius: 12px;
  border:1px solid rgba(56,189,248,.35);
  background: rgba(56,189,248,.10);
  color: #d7f1ff;
  font-size: 13px;
}
.error{
  padding:10px 12px;
  border-radius: 12px;
  border:1px solid rgba(251,113,133,.35);
  background: rgba(251,113,133,.10);
  color: #ffd0d8;
  font-size: 13px;
}

.btn.disabled{opacity:.45; pointer-events:auto;}



.admin-page label{
  font-size:16px;
  font-weight:600;
}

.admin-page select,
.admin-page input,
.admin-page textarea{
  font-size:18px;
  padding:14px 16px;
  border-radius:14px;
}

.admin-page option{
  font-size:18px;
}

.admin-page .btn{
  font-size:16px;
  padding:12px 18px;
}

@media (max-width: 640px){
  .admin-page select,
  .admin-page input,
  .admin-page textarea{
    font-size:19px;
  }
}

/* ===============================
   Admin – LARGE & EASY TO READ
   =============================== */
.admin-page{
  font-size: 18px;
}

.admin-page label{
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.2px;
  margin-bottom: 6px;
}

.admin-page select,
.admin-page input,
.admin-page textarea{
  font-size: 22px;
  padding: 18px 20px;
  border-radius: 16px;
  line-height: 1.4;
}

.admin-page option{
  font-size: 22px;
}

.admin-page .formRow{
  margin-bottom: 22px;
}

.admin-page .btn{
  font-size: 20px;
  padding: 14px 22px;
  border-radius: 16px;
}

/* Mobile / Tablet: even bigger */
@media (max-width: 768px){
  .admin-page select,
  .admin-page input,
  .admin-page textarea{
    font-size: 24px;
    padding: 20px 22px;
  }

  .admin-page .btn{
    font-size: 22px;
    padding: 16px 24px;
  }
}

/* Ensure Fullscreen button text is white */
.btn.primary{ color:#ffffff; }

.footer a{color: var(--accent); text-decoration:none;}
.footer a:hover{text-decoration:underline;}

.tile.locked{opacity:.55; cursor:not-allowed;}




.metaLine{
  margin-top:6px;
  font-size:13px;
  opacity:.75;
}


.metaLine{
  margin-top: 6px;
  font-size: 13px;
  opacity: .75;
}




.lockedOverlay{
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(0,0,0,.6);
  z-index: 9999;
}
.lockedOverlay.open{ display:flex; }

.lockedCard{
  width: min(520px, 100%);
  background: rgba(12,18,32,.96);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  padding: 18px;
  box-shadow: 0 20px 60px rgba(0,0,0,.45);
}
.lockedHeader{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.lockedTitle{
  font-size: 18px;
  font-weight: 800;
}
.lockedClose{
  appearance:none;
  border:0;
  background: rgba(255,255,255,.08);
  color: #fff;
  width: 38px;
  height: 38px;
  border-radius: 12px;
  cursor:pointer;
}
.lockedClose:hover{ background: rgba(255,255,255,.14); }

.lockedMessage{
  font-size: 16px;
  line-height: 1.4;
  opacity: .92;
  margin-bottom: 14px;
}

#lockMsg,#lockOk,#lockTitle{display:none !important;}

/* Safety: never render legacy lock UI fragments */
#lockModal,#lockedOverlay,#lockMsg,#lockOk,#lockTitle,#lockedMessage,#lockedClose,#lockedOk,#lockedTitle{display:none !important;}


.player{position:relative;padding-top:56.25%;width:100%;}
.videoShell{position:absolute;inset:0;width:100%;height:100%;background:#000;}
.videoShell iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.videoPoster{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:#000;cursor:pointer;display:block;}
.videoPoster img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center;}
.playBtn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:84px;height:84px;border-radius:999px;background:rgba(0,0,0,.62);color:#fff;font-size:34px;line-height:1;box-shadow:0 10px 30px rgba(0,0,0,.35);}
.videoPoster:hover .playBtn,.videoPoster:focus-visible .playBtn{transform:translate(-50%,-50%) scale(1.05);}
.videoPoster:focus-visible{outline:2px solid rgba(56,189,248,.8);outline-offset:-4px;}
.playerNoticeWrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;}
.videoShell.is-loading::before{content:"Loading video…";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;background:rgba(0,0,0,.35);z-index:3;}




.immersiveOverlay{position:fixed; inset:0; z-index:10000; background:#000; display:block; padding-top:env(safe-area-inset-top,0); padding-bottom:env(safe-area-inset-bottom,0);}
.immersiveOverlay[hidden]{display:none !important;}
.overlayStage{position:absolute; inset:0; background:#000;}
.overlayStage iframe,.overlayStage #rtYtMount,.overlayStage #rtYtMount iframe{position:absolute !important; inset:0; width:100% !important; height:100% !important; border:0;}
.overlayMeta{position:absolute; left:14px; right:70px; top:max(14px, env(safe-area-inset-top,0)); z-index:2; color:#fff; font-size:14px; text-shadow:0 2px 10px rgba(0,0,0,.65);}
.overlayClose{position:absolute; right:14px; top:max(14px, env(safe-area-inset-top,0)); z-index:3; width:44px; height:44px; border-radius:999px; border:1px solid rgba(255,255,255,.2); background:rgba(0,0,0,.55); color:#fff; font-size:22px;}
body.overlay-open{overflow:hidden;}


:root{--rt-vh:100vh;}
html.overlay-open, body.overlay-open{height:var(--rt-vh); overflow:hidden; overscroll-behavior:none;}
body.native-fullscreen-active{background:#000;}
.playerNoticeWrap{position:absolute; inset:0; display:grid; place-items:center; padding:16px;}
.nativePlayer{position:absolute; inset:0; width:100%; height:100%; background:#000;}
.videoShell,.videoPoster{position:absolute; inset:0; width:100%; height:100%;}
.videoPoster{border:0; padding:0; background:#000; color:#fff; cursor:pointer; -webkit-appearance:none; appearance:none;}
.videoPoster img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.playBtn{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:74px; height:74px; border-radius:999px; display:grid; place-items:center; background:rgba(0,0,0,.55); border:1px solid rgba(255,255,255,.25); font-size:30px; padding-left:4px;}
.videoPosterLabel{position:absolute; left:50%; bottom:18px; transform:translateX(-50%); background:rgba(0,0,0,.55); padding:8px 12px; border-radius:999px; font-size:13px;}
.immersiveOverlay{position:fixed; left:0; top:0; width:100vw; height:var(--rt-vh); min-height:-webkit-fill-available; z-index:10000; background:#000; display:block; padding-top:env(safe-area-inset-top,0); padding-bottom:env(safe-area-inset-bottom,0); padding-left:env(safe-area-inset-left,0); padding-right:env(safe-area-inset-right,0);}
.immersiveOverlay[hidden]{display:none !important;}
.overlayStage{position:absolute; inset:0; background:#000;}
.overlayStage iframe,.overlayStage #rtYtMount,.overlayStage #rtYtMount iframe{position:absolute !important; inset:0; width:100% !important; height:100% !important; border:0; background:#000;}
.overlayMeta{position:absolute; left:max(14px, env(safe-area-inset-left,0)); right:70px; top:max(14px, env(safe-area-inset-top,0)); z-index:2; color:#fff; font-size:14px; text-shadow:0 2px 10px rgba(0,0,0,.65);}
.overlayClose{position:absolute; right:max(14px, env(safe-area-inset-right,0)); top:max(14px, env(safe-area-inset-top,0)); z-index:3; width:44px; height:44px; border-radius:999px; border:1px solid rgba(255,255,255,.2); background:rgba(0,0,0,.55); color:#fff; font-size:22px; -webkit-appearance:none; appearance:none;}
body.overlay-open{overflow:hidden; touch-action:none;}
@supports (height: 100dvh){.immersiveOverlay{height:100dvh;}}


/* Keep current layout, but force the old overlay to be true fullscreen on mobile */
.immersiveOverlay{
  position:fixed !important;
  inset:0 !important;
  width:100vw !important;
  height:100vh !important;
  height:100dvh !important;
  z-index:2147483647 !important;
  background:#000 !important;
  overflow:hidden !important;
}

.immersiveOverlay[hidden]{
  display:none !important;
}

.overlayStage,
.overlayStage iframe,
.overlayStage #rtYtMount,
.overlayStage #rtYtMount iframe{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  border:0 !important;
  background:#000 !important;
}

html.overlay-open,
body.overlay-open{
  overflow:hidden !important;
  background:#000 !important;
  height:100vh !important;
  height:100dvh !important;
}

.overlayFauxExit,
.overlayNativeExitHotspot{
  z-index:6 !important;
}

.overlayMeta{
  z-index:5 !important;
}

.videoShell,
.videoPoster{
  cursor:pointer !important;
}


/* Player overlay prev/next bounds */
.overlayActionBtn[hidden],
#overlayPrevBtn[hidden],
#overlayNextBtn[hidden]{
  display:none !important;
}

.overlayActionBtn:disabled{
  opacity:.35 !important;
  pointer-events:none !important;
}


/* Accurate continue-watching progress bar */
.continueProgress span,
#continueWatchingProgress{
  transition:width .25s ease;
}


/* Continue Watching card - safe final layout */
.continueWatchingCard{
  margin:14px 0;
}

.continueWatchingCard .continueHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}

.continueWatchingCard .continueTitle{
  margin-top:4px;
  color:#fff;
  font-size:20px;
  font-weight:850;
  line-height:1.2;
}

.continueWatchingCard .continueSub{
  margin-top:5px;
  color:rgba(255,255,255,.62);
  font-size:14px;
  line-height:1.35;
}

.continueProgress{
  height:7px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  overflow:hidden;
  margin-top:14px;
}

.continueProgress span,
#continueWatchingProgress{
  display:block;
  width:2%;
  height:100%;
  border-radius:999px;
  background:#14b8ff;
  transition:width .25s ease;
}

@media (max-width:900px){
  .continueWatchingCard{
    order:4 !important;
    border-radius:18px !important;
  }

  .continueWatchingCard .continueHead{
    align-items:flex-start;
  }

  .continueWatchingCard .continueTitle{
    font-size:18px;
  }
}


/* Simple Continue Watching bar: below description, above episode list */
.continueWatchingSimple[hidden]{
  display:none !important;
}

.continueWatchingSimple{
  width:100%;
  margin:14px 0;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.11);
  background:linear-gradient(180deg, rgba(13,24,36,.98), rgba(7,13,21,.98));
  box-shadow:0 12px 28px rgba(0,0,0,.25);
  overflow:hidden;
}

.continueSimpleLink{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:15px 16px 13px;
  color:#fff;
  text-decoration:none;
}

.continueSimpleText{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}

.continueSimpleKicker{
  color:#14b8ff;
  font-size:13px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.continueSimpleText strong{
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  font-size:19px;
  line-height:1.2;
}

.continueSimpleText small{
  color:rgba(255,255,255,.62);
  font-size:14px;
  line-height:1.25;
}

.continueSimpleButton{
  flex:0 0 auto;
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 16px;
  border-radius:14px;
  border:1px solid rgba(14,165,233,.55);
  background:rgba(14,165,233,.15);
  color:#fff;
  font-weight:850;
}

.continueSimpleProgress{
  height:7px;
  background:rgba(255,255,255,.11);
  overflow:hidden;
}

.continueSimpleProgress span,
#continueWatchingProgress{
  display:block;
  width:2%;
  height:100%;
  background:#14b8ff;
  border-radius:0 999px 999px 0;
  transition:width .25s ease;
}

@media (min-width:901px){
  .watchLayout > .continueWatchingSimple{
    grid-column:1 / -1;
  }
}

@media (max-width:900px){
  .continueWatchingSimple{
    order:4 !important;
    margin:12px 0;
  }

  .continueSimpleLink{
    padding:14px;
  }

  .continueSimpleText strong{
    font-size:17px;
  }

  .continueSimpleButton{
    min-height:40px;
    padding:0 12px;
  }
}


.watchLayout > .continueWatchingSimple{
  width:100% !important;
}

@media (min-width:901px){
  .watchLayout{
    display:flex !important;
    flex-direction:column !important;
  }

  .watchLayout > div:first-child{
    order:1 !important;
  }

  .watchLayout > .continueWatchingSimple{
    order:2 !important;
  }

  .watchLayout > .rtCommentsBlock,
  .watchLayout > .commentsCard,
  .watchLayout > .commentsToggleWrap{
    order:3 !important;
  }

  .watchLayout > .episodeNavigator{
    order:4 !important;
  }
}

@media (max-width:900px){
  .watchLayout > .continueWatchingSimple,
  .continueWatchingSimple{
    order:4 !important;
    display:block !important;
  }

  .rtCommentsBlock,
  .commentsToggleWrap,
  .commentsCard{
    order:5 !important;
  }

  .episodeNavigator{
    order:6 !important;
  }
}


/* Continue Watching should only show when real progress exists */
.continueWatchingSimple[hidden]{
  display:none !important;
}

.continueWatchingSimple:not([hidden]){
  display:block !important;
}


/* Continue Watching reliability: hidden only when no real progress, visible immediately after playback begins */
.continueWatchingSimple[hidden]{
  display:none !important;
}

.continueWatchingSimple:not([hidden]){
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}

.continueSimpleProgress span,
#continueWatchingProgress{
  transition:width .18s linear !important;
}


/* FINAL FORCE: Continue Watching always visible */
.continueWatchingSimple,
.continueWatchingSimple[hidden]{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}

.continueWatchingSimple{
  width:100% !important;
  margin:14px 0 !important;
}

.continueWatchingSimple:not(.has-saved-progress) .continueSimpleProgress span{
  width:2% !important;
  opacity:.75;
}

.continueWatchingSimple.has-saved-progress .continueSimpleKicker::after{
  content:"";
}


/* Final continue watching progress/button improvements */
.continueSimpleButton{
  cursor:pointer;
}

.continueSimpleProgress span,
#continueWatchingProgress{
  transition:width .12s linear !important;
}


/* Authoritative Continue Watching progress display */
.continueWatchingSimple,
.continueWatchingSimple[hidden]{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}

.continueSimpleProgress{
  height:7px !important;
}

.continueSimpleProgress span,
#continueWatchingProgress{
  min-width:2% !important;
  transition:width .12s linear !important;
  will-change:width;
}


/* Clean Continue Watching behaviour */
.continueWatchingSimple[hidden]{
  display:none !important;
}
.continueWatchingSimple:not([hidden]){
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}
#continueWatchingProgress{
  transition:width .15s linear !important;
}


/* Final 3-way merge: layout look + old player + time resume logic */
.continueWatchingSimple,
.continueWatchingSimple[hidden]{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}

#continueWatchingProgress{
  transition:width .12s linear !important;
}


/* Overlay prev/next boundary fixes */
#overlayPrevBtn[hidden],
#overlayNextBtn[hidden],
.overlayActionBtn[hidden]{
  display:none !important;
}
#overlayPrevBtn:disabled,
#overlayNextBtn:disabled{
  display:none !important;
}


/* Dead-end overlay navigation: no cycle at first/last video */
#overlayPrevBtn[hidden],
#overlayNextBtn[hidden],
.overlayActionBtn[hidden],
#overlayPrevBtn:disabled,
#overlayNextBtn:disabled{
  display:none !important;
}


/* Non-invasive Continue Watching: visible and live */
.continueWatchingSimple,
.continueWatchingSimple[hidden]{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}
#continueWatchingProgress{
  min-width:2%;
  transition:width .12s linear !important;
}

/* Saved videos and profile additions */
.userChip{text-decoration:none;color:inherit}
.appPillBtn.is-saved{background:rgba(250,204,21,.18);border-color:rgba(250,204,21,.55);color:#fde68a}
.savedVideosPage .lead{max-width:760px;margin:10px 0 14px;color:rgba(255,255,255,.72)}
.savedVideoGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:16px}
.savedVideoCard{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.055);border-radius:18px;text-decoration:none;color:inherit;transition:transform .16s ease,border-color .16s ease,background .16s ease}
.savedVideoCard:hover{transform:translateY(-1px);border-color:rgba(125,211,252,.45);background:rgba(255,255,255,.08)}
.savedThumb{width:92px;aspect-ratio:16/9;border-radius:12px;background:rgba(255,255,255,.08);overflow:hidden;flex:0 0 auto;display:flex;align-items:center;justify-content:center}
.savedThumb img{width:100%;height:100%;object-fit:cover;display:block}
.savedInfo{min-width:0;display:flex;flex-direction:column;gap:4px}
.savedInfo strong{font-size:15px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.savedInfo small{color:rgba(255,255,255,.65);font-size:12px}
.profileCard textarea{width:100%;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.22);color:#fff;padding:12px;font:inherit;resize:vertical}
@media (max-width:700px){.savedVideoGrid{grid-template-columns:1fr}.savedVideoCard{border-radius:16px}.savedThumb{width:112px}}

/* Profile sign in / sign out controls */
.profileAuthActions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.profileSignedInBox{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:14px 0 18px;padding:14px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.055);border-radius:18px}
.profileSignedInBox strong{display:block;margin:3px 0;font-size:18px;color:#fff}
.authSwitch{margin-top:16px;color:rgba(255,255,255,.72);font-size:14px}
.authSwitch a{color:#7dd3fc;font-weight:800;text-decoration:none}
.authSwitch a:hover{text-decoration:underline}
@media (max-width:700px){.profileSignedInBox{align-items:stretch;flex-direction:column}.profileSignedInBox .btn{width:100%;justify-content:center}.profileAuthActions .btn{flex:1 1 140px;justify-content:center}}

/* Patch: remove duplicate series label under Episodes heading */
.episodeNavigator .timelineHead.compact::after{
  content:none !important;
  display:none !important;
}


/* Final fix: remove generated Podcast/Lent/Christmas line above mobile episode list. */
.episodeNavigator .timelineHead.compact::after{
  content:none !important;
  display:none !important;
}

/* Scroll stability patch: mobile episode pages should use the document scroll, not nested scroll panes. */
@media (max-width: 900px){
  .episodeNavigatorList,
  .episodeTimelineList,
  .scrollRail{
    max-height:none !important;
    height:auto !important;
    overflow:visible !important;
    -webkit-overflow-scrolling:auto !important;
    overscroll-behavior:auto !important;
  }

  html:not(.overlay-open):not(.rt-video-open),
  body:not(.overlay-open):not(.rt-video-open){
    overflow-y:auto !important;
    overflow-x:hidden !important;
    height:auto !important;
    min-height:100% !important;
    touch-action:auto !important;
    overscroll-behavior-y:auto !important;
  }

  .episodeTimeline,
  .episodeNavigator,
  .homeLayout,
  main{
    overflow:visible !important;
    touch-action:auto !important;
  }
}

/* Camborne Cluster subscribe link shown directly below episode lists */
.camborneSubscribe{
  display:grid !important;
  grid-template-columns:minmax(170px,260px) 1fr !important;
  align-items:center !important;
  gap:18px !important;
  width:100% !important;
  max-width:760px !important;
  margin:22px auto 8px !important;
  padding:18px 20px !important;
  text-align:left !important;
  text-decoration:none !important;
  border-radius:24px !important;
  background:linear-gradient(135deg, rgba(14,165,233,.18), rgba(255,255,255,.06)) !important;
  border:2px solid rgba(56,189,248,.38) !important;
  box-shadow:0 16px 42px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.08) !important;
  overflow:hidden !important;
}
.camborneSubscribe img{
  display:block !important;
  width:100% !important;
  max-width:260px !important;
  height:auto !important;
  max-height:92px !important;
  object-fit:contain !important;
  border-radius:14px !important;
  background:#fff !important;
  padding:10px !important;
  box-shadow:0 10px 24px rgba(0,0,0,.24) !important;
}
.camborneSubscribe span{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:72px !important;
  padding:14px 18px !important;
  border-radius:18px !important;
  color:#f8fbff !important;
  background:rgba(3,105,161,.62) !important;
  border:1px solid rgba(125,211,252,.38) !important;
  font-size:clamp(24px, 2.3vw, 36px) !important;
  line-height:1.1 !important;
  font-weight:950 !important;
  letter-spacing:.01em !important;
  text-align:center !important;
  text-shadow:0 2px 10px rgba(0,0,0,.35) !important;
}
.camborneSubscribe:hover,
.camborneSubscribe:focus-visible{
  transform:translateY(-1px) !important;
  border-color:rgba(56,189,248,.70) !important;
  box-shadow:0 18px 48px rgba(0,0,0,.36), 0 0 0 4px rgba(56,189,248,.12) !important;
  outline:none !important;
}
@media (max-width:900px){
  .episodeNavigator .camborneSubscribe,
  .episodeTimeline .camborneSubscribe,
  .camborneSubscribe{
    grid-template-columns:1fr !important;
    gap:14px !important;
    max-width:92vw !important;
    margin-top:16px !important;
    margin-bottom:16px !important;
    padding:14px !important;
    border-radius:22px !important;
    text-align:center !important;
  }
  .episodeNavigator .camborneSubscribe img,
  .episodeTimeline .camborneSubscribe img,
  .camborneSubscribe img{
    width:100% !important;
    max-width:330px !important;
    max-height:82px !important;
    margin:0 auto !important;
    padding:8px !important;
  }
  .episodeNavigator .camborneSubscribe span,
  .episodeTimeline .camborneSubscribe span,
  .camborneSubscribe span{
    min-height:58px !important;
    font-size:26px !important;
    padding:12px 14px !important;
  }
}
