
:root{
  /* Surfaces */
  --lp-bg: #202124;
  --lp-surface: #1d2024;
  --lp-frame: #202428;
  --lp-border: rgba(255,255,255,0.08);

  /* Text */
  --lp-text: rgba(255,255,255,0.92);
  --lp-muted: rgba(255,255,255,0.62);
  --lp-faint: rgba(255,255,255,0.38);

  /* Accent (subtle) */
  --lp-accent: rgba(255,255,255,0.82);

  /* Controls */
  --lp-control-idle: rgba(255,255,255,0.85);
  --lp-control-hover: rgba(255,255,255,1);

  /* Shadows / radius */
  --lp-radius: 14px;
  --lp-shadow: 0 20px 60px rgba(0,0,0,0.35);
  --lp-player-max: var(--lp-max-width, 1100px);
  --lp-actions-width: 250px;

  /* Motion */
  --lp-ease: cubic-bezier(0.2, 0, 0, 1);
  --lp-fade: 160ms;
  --lp-control-hit-desktop: 36px;
  --lp-control-hit-mobile: 44px;
  --lp-control-visual-size: 32px;
  --lp-controls-gap: 12px;
  --lp-controls-padding: 16px;
  --lp-nav-height: 120px;
}

.lp-player-shell{max-width:var(--lp-player-max);margin:0 auto;padding:20px 18px;color:var(--lp-text);background:var(--lp-bg);border-radius:var(--lp-radius);position:relative;z-index:2;color-scheme:dark;font-family:"Helvetica Neue",Arial,sans-serif;}
body[data-theme="light"]:not(.lp-cinema) .lp-player-shell{
  --lp-bg:#f8fafc;
  --lp-surface:#ffffff;
  --lp-frame:#edf2f7;
  --lp-border:rgba(15,23,42,0.15);
  --lp-text:rgba(15,23,42,0.95);
  --lp-muted:rgba(15,23,42,0.68);
  --lp-faint:rgba(15,23,42,0.45);
  --lp-accent:rgba(15,23,42,0.82);
  --lp-control-idle:rgba(15,23,42,0.82);
  --lp-control-hover:rgba(15,23,42,1);
  --lp-shadow:0 20px 60px rgba(15,23,42,0.20);
  color-scheme:light;
}
.player-shell{
  display:block;
}
.player-core{
  min-width:0;
}
.lp-meta-remote-row{
  display:grid;
  grid-template-areas:"meta meta" "actions remote";
  grid-template-columns:auto 1fr;
  gap:20px;
  align-items:start;
  margin-top:18px;
}
.lp-meta-remote-row .lp-meta{
  grid-area:meta;
  min-width:0;
  margin:0;
  padding-top:0;
}
.lp-meta-remote-row .player-tools-row{grid-area:actions;}
.lp-meta-remote-row .remote-panel{grid-area:remote;}
.lp-video-admin-shell{
  --lp-admin-tab-peek: 32px;
  position:fixed;
  top:50%;
  left:0;
  z-index:999999;
  display:flex;
  flex-direction:row-reverse;
  align-items:stretch;
  transform:translateY(-50%) translateX(calc(-100% + var(--lp-admin-tab-peek)));
  transition:transform 0.25s ease;
}
.lp-video-admin-shell.open{
  transform:translateY(-50%) translateX(0);
}
@media(max-width:767px){.lp-video-admin-shell{display:none;}}
.lp-video-admin-tab{
  border:1px solid rgba(148,163,184,0.42);
  border-left:0;
  background:rgba(8,15,30,0.92);
  color:rgba(241,245,249,0.95);
  border-radius:0 8px 8px 0;
  padding:12px 5px;
  cursor:pointer;
  font-size:12px;
  font-weight:600;
  letter-spacing:0.02em;
  position:relative;
  z-index:2;
  box-shadow:4px 0 18px rgba(0,0,0,0.3);
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0;
  touch-action:manipulation;
}
.lp-video-admin-tab span{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  font-size:11px;
  letter-spacing:0.06em;
  display:block;
  text-align:center;
}
.lp-video-admin-tab:hover{
  border-color:rgba(125,211,252,0.62);
  border-left-width:0;
  color:#ffffff;
}
.lp-video-admin-panel{
  display:block;
}
.lp-video-admin-panel-card{
  width:280px;
  border:1px solid rgba(148,163,184,0.35);
  border-right:0;
  border-radius:16px 0 0 16px;
  background:rgba(5,10,18,0.94);
  box-shadow:-8px 0 32px rgba(0,0,0,0.4);
  overflow-y:auto;
  max-height:calc(100vh - 60px);
}
.lp-video-admin-grid{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:12px 14px 10px;
}
.lp-video-admin-item{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:14px;
  color:rgba(226,232,240,0.92);
  line-height:1.4;
}
.lp-video-admin-item input{
  margin-top:2px;
}
.lp-video-admin-actions{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  padding:0 14px 10px;
}
.lp-video-admin-save,
.lp-video-admin-edit{
  width:90%;
  min-height:34px;
  padding:7px 10px;
  line-height:1.1;
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:600;
  text-decoration:none;
}
.lp-video-admin-footer{
  display:flex;
  justify-content:center;
  padding:6px 14px 14px;
  border-top:1px solid rgba(148,163,184,0.15);
  margin-top:4px;
}
.lp-video-admin-footer a{
  width:90%;
  min-height:32px;
  padding:6px 10px;
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:12px;
  font-weight:600;
  text-decoration:none;
  color:rgba(226,232,240,0.75);
  border:1px solid rgba(148,163,184,0.25);
  border-radius:6px;
}
.lp-video-admin-footer a:hover{
  color:#fff;
  border-color:rgba(148,163,184,0.5);
}
.lp-video-admin-status{
  margin:0;
  min-height:18px;
  padding:0 14px 12px;
  font-size:12px;
  color:rgba(148,163,184,0.92);
}
.lp-video-admin-status.is-error{
  color:#fca5a5;
}
.player-tools-row{
  display:block;
  margin-top:16px;
}
.player-actions-panel{
  min-width:0;
  width:fit-content;
  max-width:100%;
  justify-self:start;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,0.12);
  border-radius:14px;
  background:rgba(5,10,18,0.5);
  box-shadow:0 16px 34px rgba(0,0,0,0.22);
  padding:12px;
}
body[data-theme="light"]:not(.lp-cinema) .player-actions-panel{
  border-color:rgba(15,23,42,0.14);
  background:rgba(255,255,255,0.74);
  box-shadow:0 16px 34px rgba(15,23,42,0.10);
}
.player-panel-title{
  margin:0 0 10px;
  font-size:13px;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:rgba(226,232,240,0.88);
}
body[data-theme="light"]:not(.lp-cinema) .player-panel-title{
  color:rgba(15,23,42,0.70);
}
.player-actions-grid{
  display:grid;
  grid-template-columns:var(--lp-actions-width);
  justify-items:stretch;
  gap:8px;
}
.remote-panel{
  min-width:0;
  width:100%;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,0.12);
  border-radius:14px;
  background:rgba(5,10,18,0.65);
  box-shadow:0 16px 34px rgba(0,0,0,0.28);
  padding:12px;
  position:relative;
}
body[data-theme="light"]:not(.lp-cinema) .remote-panel{
  border-color:rgba(15,23,42,0.14);
  background:rgba(255,255,255,0.80);
  box-shadow:0 16px 34px rgba(15,23,42,0.12);
}
.remote-panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:10px;
}
.remote-panel-head-actions{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.remote-panel-title{
  margin:0;
  font-size:13px;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:rgba(226,232,240,0.88);
}
body[data-theme="light"]:not(.lp-cinema) .remote-panel-title{
  color:rgba(15,23,42,0.72);
}
.remote-theme-toggle{
  min-width:auto;
  width:auto;
  padding:7px 10px;
  font-size:12px;
}
.remote-panel-close{
  display:none;
  border:1px solid rgba(255,255,255,0.14);
  border-radius:10px;
  background:rgba(0,0,0,0.2);
  color:rgba(255,255,255,0.84);
  font-size:12px;
  padding:6px 10px;
  cursor:pointer;
}
body[data-theme="light"]:not(.lp-cinema) .remote-panel-close{
  border-color:rgba(15,23,42,0.16);
  background:rgba(241,245,249,0.66);
  color:rgba(15,23,42,0.84);
}
.remote-float-btn{
  min-width:auto;
  width:auto;
  padding:6px 10px;
  font-size:12px;
  border:1px solid rgba(255,255,255,0.14);
  border-radius:10px;
  background:rgba(0,0,0,0.18);
  color:rgba(255,255,255,0.80);
  cursor:pointer;
  line-height:1.2;
  white-space:nowrap;
}
body[data-theme="light"]:not(.lp-cinema) .remote-float-btn{
  border-color:rgba(15,23,42,0.16);
  background:rgba(241,245,249,0.66);
  color:rgba(15,23,42,0.84);
}
.remote-popout-btn{display:none;}
@media(min-width:901px){
  .remote-popout-btn{display:inline-flex;align-items:center;justify-content:center;}
}
.remote-panel.is-floating{
  position:fixed;
  z-index:200;
  width:360px;
  max-width:360px;
  min-width:0;
  max-height:85vh;
  overflow-y:auto;
  background:rgba(5,10,18,0.97);
  box-shadow:0 16px 48px rgba(0,0,0,0.6),0 0 0 1px rgba(255,255,255,0.1);
}
body[data-theme="light"]:not(.lp-cinema) .remote-panel.is-floating{
  background:rgba(255,255,255,0.98);
  box-shadow:0 16px 48px rgba(15,23,42,0.25),0 0 0 1px rgba(15,23,42,0.12);
}
.remote-panel.is-floating .remote-panel-head{cursor:grab;user-select:none;}
.remote-panel.is-floating .remote-panel-head:active{cursor:grabbing;}
.remote-panel.is-floating.is-minimised{max-height:none;overflow:visible;width:auto;min-width:220px;}
.remote-panel.is-floating.is-minimised>*:not(.remote-panel-head){display:none;}
.remote-panel.is-floating.is-minimised .remote-panel-head{margin-bottom:0;}
.remote-panel.is-floating.is-minimised .remote-theme-toggle{display:none;}
.remote-section{
  border-top:1px solid rgba(255,255,255,0.08);
  padding-top:10px;
  margin-top:10px;
}
body[data-theme="light"]:not(.lp-cinema) .remote-section{
  border-top-color:rgba(15,23,42,0.10);
}
.remote-section:first-of-type{
  border-top:0;
  padding-top:0;
  margin-top:0;
}
.remote-section-title{
  margin:0 0 8px;
  font-size:12px;
  color:rgba(203,213,225,0.82);
}
body[data-theme="light"]:not(.lp-cinema) .remote-section-title{
  color:rgba(15,23,42,0.62);
}
.remote-captions-toggle{
  width:100%;
}
.remote-future-slot{
  border:1px dashed rgba(148,163,184,0.35);
  border-radius:12px;
  min-height:44px;
  margin-top:12px;
}
body[data-theme="light"]:not(.lp-cinema) .remote-future-slot{
  border-color:rgba(100,116,139,0.34);
  background:rgba(241,245,249,0.34);
}
.lp-remote-drawer-toggle{
  display:none;
  margin:12px 0 0;
  border:1px solid rgba(255,255,255,0.16);
  border-radius:12px;
  background:rgba(0,0,0,0.22);
  color:rgba(255,255,255,0.84);
  padding:9px 12px;
  cursor:pointer;
}
body[data-theme="light"]:not(.lp-cinema) .lp-remote-drawer-toggle{
  border-color:rgba(15,23,42,0.18);
  background:rgba(241,245,249,0.70);
  color:rgba(15,23,42,0.82);
}
.lp-remote-backdrop{
  display:none;
  position:fixed;
  inset:0;
  border:0;
  margin:0;
  padding:0;
  background:rgba(0,0,0,0.45);
  z-index:47;
}
.lp-remote-backdrop.is-open{
  display:block;
}
.lp-cinema-backdrop{
  position:fixed;
  inset:0;
  background:#000;
  opacity:0;
  transition:opacity var(--lp-fade) var(--lp-ease);
  z-index:0;
  pointer-events:none;
}
body.lp-cinema .lp-cinema-backdrop{opacity:1;}
/* Cinema Pass aims to feel full-bleed and immersive (while still exiting cleanly). */
body.lp-cinema{padding:0 !important;background:#000;}
body.lp-cinema nav,
body.lp-cinema footer.site-footer{display:none !important;}
body.lp-cinema main{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding-top:max(8px, env(safe-area-inset-top, 0px)) !important;
  padding-bottom:max(8px, env(safe-area-inset-bottom, 0px)) !important;
  padding-left:0 !important;
  padding-right:0 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  min-height:100vh;
  min-height:100dvh;
}
@media (max-width: 640px){
  /* iOS Safari's URL bar can overlap the very top of the page.
     Give Cinema Pass extra top padding on phones so the player doesn't sit underneath browser chrome. */
  body.lp-cinema main{
    padding-top:max(20px, env(safe-area-inset-top, 0px)) !important;
    padding-bottom:max(20px, env(safe-area-inset-bottom, 0px)) !important;
  }
}
body.lp-cinema .lp-player-shell{
  --lp-cinema-actions-space: clamp(68px, 10vh, 112px);
  --lp-cinema-safe-vertical: calc(env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px));
  box-sizing:border-box;
  width:100%;
  max-width:min(1920px, 92vw);
  margin:0 auto;
  padding:clamp(8px, 1.5vw, 20px);
  min-height:calc(100vh - var(--lp-cinema-safe-vertical));
  min-height:calc(100dvh - var(--lp-cinema-safe-vertical));
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  border-radius:0;
}
body.lp-cinema .player-shell{
  width:100%;
  min-height:calc(100vh - var(--lp-cinema-safe-vertical));
  min-height:calc(100dvh - var(--lp-cinema-safe-vertical));
  display:flex;
  align-items:center;
  justify-content:center;
}
body.lp-cinema .player-core{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
body.lp-cinema .lp-stage{display:flex;justify-content:center;}
body.lp-cinema .lp-frame{
  width:min(90vw, calc((90vh - var(--lp-cinema-actions-space) - var(--lp-cinema-safe-vertical)) * var(--lp-aspect-ratio-number, 1)));
  width:min(90vw, calc((90dvh - var(--lp-cinema-actions-space) - var(--lp-cinema-safe-vertical)) * var(--lp-aspect-ratio-number, 1)));
  max-height:calc(90dvh - var(--lp-cinema-actions-space) - var(--lp-cinema-safe-vertical));
  max-width:min(1920px, 92vw);
  margin:0 auto;
}
body.lp-cinema .lp-desc{display:none;}
body.lp-cinema .lp-byline{display:none;}
body.lp-cinema .lp-meta .lp-title{display:none;}
body.lp-cinema .lp-disclosure{display:none;}
body.lp-cinema .lp-remote-drawer-toggle{display:none !important;}
body.lp-cinema .remote-panel{display:none !important;}
body.lp-cinema .lp-remote-backdrop{display:none !important;}
body.lp-cinema .lp-video-admin-shell{display:none !important;}
body.lp-cinema .lp-meta-remote-row{
  display:flex;
  justify-content:center;
  margin-top:12px;
  width:100%;
}
body.lp-cinema .lp-meta{
  padding-top:0;
  width:auto;
}
body.lp-cinema .lp-meta-header{display:none;}
body.lp-cinema .player-tools-row{
  display:block;
  margin-top:0;
}
body.lp-cinema .player-actions-grid .lp-action{display:none;}
body.lp-cinema .player-actions-grid .lp-action-cinema{display:inline-flex !important;}
body.lp-cinema .player-actions-grid .lp-action-loop{display:inline-flex !important;}
body.lp-cinema .player-actions-panel{
  width:fit-content;
  max-width:calc(var(--lp-actions-width) * 2 + 24px);
  justify-self:center;
  margin-left:auto;
  margin-right:auto;
  margin-top:10px;
  position:relative;
  z-index:6;
  pointer-events:auto;
  border-color:rgba(71,85,105,0.42);
  background:rgba(2,6,14,0.82);
  box-shadow:0 20px 44px rgba(0,0,0,0.46);
}
body.lp-cinema .player-actions-grid{
  grid-template-columns:repeat(2, var(--lp-actions-width));
  justify-content:center;
  column-gap:10px;
}
body.lp-cinema .player-actions-grid .lp-action{
  color:rgba(100,116,139,0.82);
  border-color:rgba(100,116,139,0.20);
  background:rgba(1,4,16,0.76);
}
body.lp-cinema .player-actions-grid .lp-action-cinema,
body.lp-cinema .player-actions-grid .lp-action-loop{
  border-color:rgba(100,116,139,0.38) !important;
  background:rgba(4,8,18,0.94) !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
}
body.lp-cinema .player-actions-grid .lp-action:hover{
  color:rgba(167,180,201,0.88);
  border-color:rgba(100,116,139,0.34);
  background:rgba(2,6,20,0.82);
}
body.lp-cinema .player-actions-grid .lp-action[aria-pressed="true"]{
  color:rgba(195,208,226,0.90);
  border-color:rgba(94,234,212,0.26);
  background:rgba(12,20,36,0.94);
  transform: translateY(1px);
}
body.lp-cinema .lp-resume-banner{display:none;}
body.lp-cinema .lp-quality-bar{display:none;}
body.lp-cinema .lp-title-overlay{
  /* In Cinema Pass the title can linger briefly; keep it readable against dark footage. */
  color:rgba(248,250,252,0.96);
  text-shadow:0 2px 18px rgba(0,0,0,0.60);
}
@media (max-width: 640px){
  body.lp-cinema main{
    padding-top:max(20px, env(safe-area-inset-top, 0px)) !important;
    padding-bottom:max(20px, env(safe-area-inset-bottom, 0px)) !important;
  }
  body.lp-cinema .lp-player-shell{
    --lp-cinema-safe-vertical: calc(env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px) + 20px);
    padding-top:max(10px, env(safe-area-inset-top, 0px));
    padding-bottom:max(10px, env(safe-area-inset-bottom, 0px));
  }
  body.lp-cinema .player-actions-panel{
    width:min(var(--lp-actions-width), calc(100vw - 28px));
    max-width:min(var(--lp-actions-width), calc(100vw - 28px));
    padding-left:8px;
    padding-right:8px;
  }
  body.lp-cinema .player-actions-grid{
    grid-template-columns:minmax(0, 1fr);
    row-gap:8px;
    column-gap:0;
  }
  body.lp-cinema .player-actions-grid .lp-action{
    width:100%;
    min-width:0;
    max-width:none;
  }
}
.lp-stage{display:flex;justify-content:center;}
.lp-frame{
  --lp-native-aspect: 1 / 1;
  --lp-aspect-ratio-number: 1;
  --lp-standard-max-vh: 75vh;
  --lp-standard-max-vh: 75dvh;
  position:relative;
  width:min(100%, calc(var(--lp-standard-max-vh) * var(--lp-aspect-ratio-number)));
  max-width:100%;
  max-height:var(--lp-standard-max-vh);
  background:var(--lp-frame);
  border:1px solid var(--lp-border);
  border-radius:var(--lp-radius);
  box-shadow:var(--lp-shadow);
  overflow:hidden;
  aspect-ratio: var(--lp-native-aspect);
}
.lp-frame[data-orientation="landscape"]{--lp-native-aspect:16 / 9;}
.lp-frame[data-orientation="portrait"]{--lp-native-aspect:9 / 16;}
.lp-frame.lp-aspect-ultrawide,
.lp-frame.lp-aspect-landscape{
  width:min(100%, calc(var(--lp-standard-max-vh) * var(--lp-aspect-ratio-number)));
}
.lp-frame.lp-aspect-square{
  width:min(100%, var(--lp-standard-max-vh));
}
.lp-frame.lp-aspect-portrait{
  width:min(100%, calc(var(--lp-standard-max-vh) * var(--lp-aspect-ratio-number)));
}
@media (min-width: 901px){
  .lp-meta-remote-row{grid-template-columns:auto minmax(420px,520px);}
  .remote-panel-sections{display:grid;grid-template-columns:1fr 1fr;column-gap:14px;align-items:start;}
  .remote-section-playback{grid-column:1;grid-row:1;align-self:start;border-top:0;margin-top:0;padding-top:0;}
  .remote-section-video{grid-column:1;grid-row:2;align-self:start;}
  .remote-section-chapters{grid-column:1;grid-row:3;align-self:start;}
  .remote-section-audio{grid-column:2;grid-row:1;align-self:start;border-top:0;margin-top:0;padding-top:0;}
  .remote-section-accessibility{grid-column:2;grid-row:2;align-self:start;}
  .remote-section-creator-notes{grid-column:2;grid-row:3;align-self:start;}
}
@media (max-width: 900px){
  .lp-video-admin-shell{
    --lp-admin-tab-peek: 42px;
    padding:0 10px;
  }
  .lp-video-admin-grid{
    grid-template-columns:minmax(0, 1fr);
  }
  .lp-meta-remote-row{
    grid-template-columns:minmax(0, 1fr);
    grid-template-areas:"meta" "actions";
    gap:12px;
  }
  .lp-frame{
    --lp-standard-max-vh: 75vh;
    --lp-standard-max-vh: 75dvh;
  }
  .lp-remote-drawer-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }
  .remote-panel{
    position:fixed;
    top:var(--lp-nav-height, 56px);
    left:0;
    bottom:0;
    width:min(92vw, 320px);
    max-width:min(92vw, 320px);
    border-radius:0;
    border-right:1px solid rgba(255,255,255,0.14);
    border-left:0;
    border-top:0;
    border-bottom:0;
    z-index:48;
    overflow-y:auto;
    transform:translateX(-100%);
    transition:transform 180ms ease;
    background:rgba(8,12,20,0.98);
  }
  body[data-theme="light"]:not(.lp-cinema) .remote-panel{
    background:rgba(255,255,255,0.86);
    border-right-color:rgba(15,23,42,0.14);
  }
  .remote-panel[aria-hidden="true"]{
    transform:translateX(-100%);
    pointer-events:none;
  }
  .remote-panel.is-open{
    transform:translateX(0);
    pointer-events:auto;
  }
  .remote-panel-close{
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }
  .remote-theme-toggle{
    min-height:34px;
  }
}
@media (max-width: 640px){
  .lp-video-admin-shell{
    --lp-admin-tab-peek: 40px;
    padding:0 8px;
  }
  .lp-video-admin-tab{
    border-radius:0 0 10px 10px;
  }
  .lp-video-admin-panel-card{
    border-radius:0 0 12px 12px;
  }
  .lp-frame.lp-aspect-portrait{
    width:100%;
    max-height:none;
  }
  /* Edge-to-edge player on phones, app-style -- the whole dark/light shell
     (video, title, meta, actions, remote panel) runs flush to the screen
     edges as one continuous surface, not just the video with a still-inset
     card underneath it (that split looked disjointed -- two stacked
     containers rather than one screen). .lp-player-shell breaks out of the
     shared <main> element's 20px horizontal padding (core.css) via a
     matching negative margin, and drops its own 18px padding + corner
     radius entirely. (A page-level inline `main{padding:0}` override
     exists for this page but is silently overridden by core.css's own
     main{padding:20px}, since core.css loads via a <link> positioned after
     it in <head> and both are equal-specificity bare-element selectors --
     that's a separate pre-existing issue, not touched here.)

     Text content would otherwise touch the screen edges once the shell's
     own padding is gone, so .lp-meta-remote-row and .lp-resume-banner --
     the shell's other direct children with real text/buttons -- get that
     same 18px back as their own padding, matching the shell's original
     spacing exactly, just relocated from parent to child.

     .lp-stage no longer needs its own negative margin: with the shell
     itself already flush to the viewport, there is no remaining padding
     layer left for the video specifically to break out of.

     --lp-radius stays at its normal 14px default (not zeroed) -- rounded
     corners read fine even flush against the screen edge, same as any
     full-bleed card/hero in a native app; the page's own background just
     shows through the very tip of the curve instead of the shell's color. */
  .lp-player-shell{
    padding-left:0;
    padding-right:0;
    margin-left:-20px;
    margin-right:-20px;
  }
  .lp-meta-remote-row,
  .lp-resume-banner{
    padding-left:18px;
    padding-right:18px;
  }
  .lp-frame{
    /* A hair narrower than the shell (94% vs 100%) so the shell's own
       background shows as a thin, even gutter on both sides -- .lp-stage's
       existing flex justify-content:center does the centering for free.
       Purely a max-width cap: it composes with whichever width formula the
       aspect-ratio variant classes above already picked (min(100%,...) for
       the standard case, plain 100% for .lp-aspect-portrait), since a
       narrower max-width always wins over a wider explicit width. */
    max-width:94%;
    border-left:none;
    border-right:none;
    box-shadow:none;
  }
}
/* Title overlay on video */
.lp-title-overlay{
  position:absolute;
  top:12px;
  left:14px;
  right:14px;
  color:#fff;
  font-weight:600;
  font-size:14px;
  letter-spacing:.2px;
  text-shadow:0 2px 12px rgba(0,0,0,.45);
  pointer-events:none;
  z-index:3;
  transition: opacity 180ms ease;
}
.lp-title-overlay.is-hidden{
  opacity: 0;
  pointer-events: none;
}
.lp-screening-watermark{
  position:absolute;
  right:16px;
  bottom:16px;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:2px;
  font-size:14px;
  font-weight:500;
  line-height:1.2;
  color:rgba(248,250,252,0.66);
  opacity:0.4;
  pointer-events:none;
  user-select:none;
  text-shadow:0 1px 6px rgba(0,0,0,0.45);
  z-index:5;
}
.lp-completion-overlay{
  position:absolute;
  left:16px;
  right:16px;
  bottom:25%;
  margin:0 auto;
  max-width:min(520px, 86%);
  padding:10px 14px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,0.22);
  background:rgba(2,6,23,0.62);
  color:rgba(248,250,252,0.96);
  text-align:center;
  font-size:14px;
  font-weight:500;
  letter-spacing:0.01em;
  box-shadow:0 14px 30px rgba(2,6,23,0.35);
  opacity:0;
  transform:translateY(8px);
  transition:opacity 300ms ease, transform 300ms ease;
  pointer-events:none;
  user-select:none;
  z-index:6;
}
.lp-completion-overlay.is-visible{
  opacity:1;
  transform:translateY(0);
}
.lp-completion-overlay.has-next{
  pointer-events:auto;
  user-select:auto;
  padding:0;
  overflow:hidden;
}
.lp-completion-overlay.has-next .lp-next-card{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:12px 16px;
  color:inherit;
  text-decoration:none;
}
.lp-completion-overlay.has-next .lp-next-label{
  font-size:11px;
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  opacity:0.7;
}
.lp-completion-overlay.has-next .lp-next-title{
  font-size:15px;
  font-weight:600;
}
.lp-completion-overlay.has-next:hover{
  background:rgba(2,6,23,0.78);
}
body[data-theme="light"]:not(.lp-cinema) .lp-completion-overlay.has-next:hover{
  background:rgba(241,245,249,0.92);
}
body[data-theme="light"]:not(.lp-cinema) .lp-screening-watermark{
  color:rgba(248,250,252,0.94);
  opacity:0.46;
  padding:4px 8px;
  border-radius:8px;
  background:rgba(15,23,42,0.32);
  border:1px solid rgba(248,250,252,0.22);
  text-shadow:0 1px 4px rgba(2,6,23,0.78);
}
.lp-review-status{
  display:inline-block;
  padding:5px 12px;
  border-radius:4px;
  font-size:12px;
  font-weight:600;
  letter-spacing:0.03em;
  text-transform:uppercase;
  margin:8px 0 4px;
  pointer-events:none;
}
.lp-review-status--in-review{
  background:#1e40af;
  color:#eff6ff;
}
.lp-review-status--approved{
  background:#166534;
  color:#f0fdf4;
}
.lp-approve-wrap{
  margin:8px 0 4px;
  display:flex;
  align-items:center;
  gap:10px;
}
.lp-approve-feedback{
  font-size:13px;
  font-weight:600;
  color:#22c55e;
}
body[data-theme="light"]:not(.lp-cinema) .lp-completion-overlay{
  border-color:rgba(15,23,42,0.18);
  background:rgba(241,245,249,0.78);
  color:rgba(15,23,42,0.94);
  box-shadow:0 12px 26px rgba(15,23,42,0.20);
}
/* Fullscreen letterbox/pillarbox */
.lp-frame:fullscreen,
.lp-frame:-webkit-full-screen,
.lp-frame:-moz-full-screen,
.lp-frame:-ms-fullscreen {
  background: #000;
}
.lp-frame:fullscreen .lp-video,
.lp-frame:-webkit-full-screen .lp-video,
.lp-frame:-moz-full-screen .lp-video,
.lp-frame:-ms-fullscreen .lp-video {
  background: #000;
}
/* Fullscreen root background override */
:fullscreen,
html:fullscreen,
body:fullscreen,
.lp-player-shell:fullscreen,
.lp-frame:fullscreen {
  background: #000 !important;
}

/* Video: always preserve source aspect ratio (letterbox/pillarbox as needed). */
.lp-video{width:100%;height:100%;display:block;object-fit:contain;background:#000 !important;}
.lp-video::-webkit-media-controls-enclosure{background:#000 !important;}
/* Freeze-frame overlay: shown only while a quality-switch reload resets the
   <video> element (native HLS has no in-place level switch, so every
   quality change -- manual, or the Safari auto-lock release -- reassigns
   video.src and calls load(), which per spec falls back to showing the
   poster until a new frame is ready). Sits directly above the video in DOM
   order with no explicit z-index, so it still stacks below the play
   button/controls/overlays that follow it. pointer-events:none so it never
   blocks a click through to those. */
.lp-freeze-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:none;pointer-events:none;}
.lp-freeze-frame.is-active{display:block;}
.lp-video::-webkit-media-controls,
.lp-video::-webkit-media-controls-enclosure{
  display:none !important;
}
/* Cinematic WebVTT caption styling */
.lp-video::cue{
  font-family:"Helvetica Neue", Arial, sans-serif;
  font-size:1.4rem;
  line-height:1.35;
  color:#fff;
  background:rgba(0,0,0,0.70);
  text-shadow:1px 1px 4px rgba(0,0,0,0.80);
  padding:0.2em 0.4em;
  text-align:center;
}
.lp-player-shell.lp-custom-captions .lp-video::cue{
  background: transparent !important;
  color: transparent !important;
  text-shadow: none !important;
}
.lp-player-shell.lp-custom-captions video::cue{
  background: transparent !important;
  color: transparent !important;
  text-shadow: none !important;
}
.lp-video.is-fullscreen::cue,
.lp-video:fullscreen::cue,
.lp-video:-webkit-full-screen::cue{
  font-size:1.8rem;
}
@media (max-width: 600px){
  .lp-video::cue{
    font-size:1.2rem;
  }
}

/* Found live 2026-10-10 (Clint, mobile, the home page embed): captions
   rendered much larger than their actual computed font-size specifically
   on mobile, specifically inside an embedded iframe -- the classic mobile
   Safari/Chrome "text autosizing"/font-boosting heuristic, which inflates
   small text it judges too narrow to read on the current viewport. It is
   NOT disabled by default, and this codebase never set the one property
   that turns it off (confirmed: zero hits for text-size-adjust anywhere).
   Scoped to the caption elements themselves, not the whole player, so it
   can't affect anything else's responsive text. */
.custom-caption-box,
.lp-video::cue{
  text-size-adjust:100%;
  -webkit-text-size-adjust:100%;
}

/* Custom caption overlay (for consistent cross-browser styling). */
.caption-overlay{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  /* JS sets --lp-caption-safe-bottom so multi-line captions sit above controls. */
  bottom:var(--lp-caption-safe-bottom, clamp(78px, 10%, 160px));
  width:90%;
  display:none;
  flex-direction:column;
  align-items:center;
  pointer-events:none;
  z-index:3;
}
.caption-overlay.is-visible{display:flex;}
.caption-overlay.caption-pos-top{bottom:auto;top:5%;}
.caption-overlay.caption-pos-top-left{bottom:auto;top:5%;left:5%;transform:none;align-items:flex-start;}
.caption-overlay.caption-pos-top-right{bottom:auto;top:5%;left:auto;right:5%;transform:none;align-items:flex-end;}
.custom-caption-box{
  background:rgba(0, 0, 0, 0.65);
  color:#ffffff;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  /* Slightly tighter than before: keeps captions cinematic without feeling bulky. */
  font-size:clamp(16px, 2.0vw, 24px);
  font-weight:500;
  line-height:1.4;
  padding:0.22em 0.62em;
  border-radius:0.5em;
  margin-bottom:0;
  text-align:center;
  box-shadow:0 2px 6px rgba(0,0,0,0.4);
  max-width:80%;
  overflow-wrap:break-word;
  white-space:pre-line;
}

/* Overlay */
.lp-overlay{
  position:absolute;
  left:50%;
  top:50%;
  width:96px;
  height:96px;
  transform:translate(-50%, -50%);
  display:flex;align-items:center;justify-content:center;
  background:transparent;border:0;cursor:pointer;
  padding:0;
  opacity:0;pointer-events:none;
  z-index:5;
  transition:opacity var(--lp-fade) var(--lp-ease);
}
.lp-frame.is-paused .lp-overlay{opacity:1;pointer-events:auto;}
body.lp-embed-mode .lp-overlay{top:40%;transform:translate(-50%,-40%);}
.lp-overlay-icon{
  width:84px;height:84px;border-radius:999px;
  border:1px solid rgba(255,255,255,0.35);
  background:rgba(0,0,0,0.28);
  position:relative;
}
.lp-overlay-icon::before{
  content:"";
  position:absolute;top:50%;left:50%;
  transform:translate(-38%,-50%);
  width:0;height:0;
  border-top:14px solid transparent;
  border-bottom:14px solid transparent;
  border-left:22px solid rgba(255,255,255,0.82);
}
.lp-overlay-icon.is-pause::before{
  transform:translate(-50%,-50%);
  width:10px;height:26px;
  border:0;
  background:rgba(255,255,255,0.82);
  box-shadow:14px 0 0 rgba(255,255,255,0.82);
}

/* Status (loading/error) */
.lp-status{
  position:absolute;left:14px;top:12px;
  color:rgba(255,255,255,0.72);
  font-size:13px;
  background:rgba(0,0,0,0.28);
  border:1px solid rgba(255,255,255,0.12);
  padding:6px 10px;border-radius:999px;
  opacity:0;transition:opacity var(--lp-fade) var(--lp-ease);
  z-index:3;
}
.lp-status.is-visible{opacity:1;}

/* Controls */
.lp-controls{
  position:absolute;left:0;right:0;bottom:0;
  display:flex;align-items:center;gap:var(--lp-controls-gap);
  padding:12px 16px 18px;
  background:linear-gradient(transparent, rgba(0,0,0,0.25));
  opacity:0;
  pointer-events:none;
  z-index:4;
  will-change:opacity;
  transition:opacity var(--lp-fade) var(--lp-ease);
}
/* Keep controls usable even if JS init degrades; JS still manages hide/show via `.is-controls`. */
.lp-frame.is-controls .lp-controls{opacity:1;pointer-events:auto;}
.lp-btn{
  width:var(--lp-control-hit-desktop);height:var(--lp-control-hit-desktop);
  border:0;
  background:transparent;
  border-radius:999px;
  color:var(--lp-control-idle);
  opacity:1;
  display:grid;place-items:center;
  pointer-events:auto;
  cursor:pointer;
  touch-action:manipulation;
  transition:opacity var(--lp-fade) var(--lp-ease), transform var(--lp-fade) var(--lp-ease), color var(--lp-fade) var(--lp-ease);
  position:relative;
}
.lp-btn::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:var(--lp-control-visual-size);
  height:var(--lp-control-visual-size);
  transform:translate(-50%, -50%);
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.10);
  background:rgba(0,0,0,0.28);
  transition:opacity var(--lp-fade) var(--lp-ease), border-color var(--lp-fade) var(--lp-ease), background-color var(--lp-fade) var(--lp-ease);
}
.lp-btn .lp-ic{position:relative;z-index:1;}
.lp-btn:hover{
  opacity:1;
  color:var(--lp-control-hover);
}
.lp-btn:hover::before{
  border-color:rgba(255,255,255,0.18);
}
body[data-theme="light"]:not(.lp-cinema) .lp-btn::before{
  border-color:rgba(15,23,42,0.16);
  background:rgba(241,245,249,0.58);
}
body[data-theme="light"]:not(.lp-cinema) .lp-btn:hover::before{
  border-color:rgba(15,23,42,0.24);
}
.lp-btn:active{
  transform:scale(0.96);
}
.lp-btn[aria-pressed="true"]{
  color:rgba(219,234,254,0.96);
  opacity:1;
}
.lp-btn[aria-pressed="true"]::before{
  border-color:rgba(147,197,253,0.55);
  background:rgba(30,58,138,0.35);
}
.lp-btn-remote{
  width:auto;
  min-width:72px;
  padding:0 14px;
}
.lp-btn-remote::before{
  width:100%;
  min-width:72px;
  border-radius:999px;
}
.lp-btn-remote .lp-btn-text{
  position:relative;
  z-index:1;
  font-size:12px;
  font-weight:600;
  letter-spacing:0.02em;
}
.lp-quality-badge{
  font-size:12px;
  font-weight:500;
  color:rgba(255,255,255,0.85);
  letter-spacing:0.02em;
  font-variant-numeric:tabular-nums;
  opacity:0.75;
  white-space:nowrap;
  max-width:42vw;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  pointer-events:none;
  border-radius:999px;
  padding:4px 10px;
  box-sizing:border-box;
  background:rgba(0,0,0,0.45);
  border:1px solid rgba(255,255,255,0.14);
  text-align:center;
}
body[data-theme="light"]:not(.lp-cinema) .lp-quality-badge{
  color:rgba(15,23,42,0.84);
  background:rgba(241,245,249,0.62);
  border-color:rgba(15,23,42,0.14);
}
.lp-time{
  font-size:12px;
  font-weight:500;
  color:rgba(255,255,255,0.85);
  letter-spacing:0.02em;
  opacity:0.75;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  min-width:0;
  display:flex;
  gap:6px;
  align-items:center;
  border-radius:999px;
  padding:4px 10px;
  box-sizing:border-box;
  background:rgba(0,0,0,0.45);
  border:1px solid rgba(255,255,255,0.14);
}
body[data-theme="light"]:not(.lp-cinema) .lp-time{
  color:rgba(15,23,42,0.84);
  background:rgba(241,245,249,0.62);
  border-color:rgba(15,23,42,0.14);
}
.lp-time-sep{color:rgba(255,255,255,0.45);}
body[data-theme="light"]:not(.lp-cinema) .lp-time-sep{color:rgba(15,23,42,0.38);}
.lp-frame.lp-aspect-portrait .lp-controls{
  flex-wrap:wrap;
  gap:var(--lp-controls-gap);
  padding:12px 12px 18px;
  overflow:visible;
  align-items:center;
}
.lp-frame.lp-aspect-portrait .lp-btn{
  width:var(--lp-control-hit-desktop);
  height:var(--lp-control-hit-desktop);
}
.lp-frame.lp-aspect-portrait .lp-vol{
  position:absolute;
  left:var(--lp-mobile-vol-x, 84px);
  top:-8px;
  bottom:auto;
  width:124px;
  min-width:124px;
  max-width:124px;
  margin:0;
  opacity:0;
  pointer-events:none;
  transform:rotate(-90deg);
  transform-origin:0 50%;
  z-index:9;
}
.lp-time-seek-group{display:contents;}
.lp-frame.lp-aspect-portrait .lp-quality-badge{
  display:inline-flex;
  order:1;
  margin-left:auto;
}
.lp-frame.lp-aspect-portrait .lp-time-seek-group{
  display:flex;
  order:2;
  flex:0 0 100%;
  align-items:center;
  gap:var(--lp-controls-gap);
  min-width:0;
}
.lp-frame.lp-aspect-portrait .lp-time-seek-group .lp-seek{
  flex:1 1 auto;
  min-width:0;
}
.lp-frame.lp-aspect-portrait .lp-controls.is-vol-open .lp-vol{
  opacity:1;
  pointer-events:auto;
}

/* Range inputs */
.lp-seek{
  --lp-seek-progress: 0%;
  --lp-seek-buffered: 0%;
  flex:1;
  -webkit-appearance:none;
  appearance:none;
  margin:0;
  padding:0;
  height:5px;
  border-radius:999px;
  background:linear-gradient(
    to right,
    rgba(255,255,255,0.9) 0 var(--lp-seek-progress),
    rgba(255,255,255,0.25) var(--lp-seek-progress) 100%
  );
  outline:none;
  cursor:pointer;
  transition:background var(--lp-fade) linear;
}
.lp-seek::-webkit-slider-runnable-track{
  height:5px;
  border-radius:999px;
  background:transparent;
}
.lp-seek::-moz-range-track{
  height:5px;
  border-radius:999px;
  background:transparent;
}
.lp-seek::-moz-range-progress{
  height:5px;
  border-radius:999px;
  background:transparent;
}
.lp-seek::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:16px;
  height:16px;
  margin-top:-5.5px;
  border-radius:999px;
  background:rgba(255,255,255,0.92);
  border:0;
  transform:scale(1);
  transition:transform var(--lp-fade) var(--lp-ease), background-color var(--lp-fade) var(--lp-ease);
}
.lp-seek::-moz-range-thumb{
  width:16px;
  height:16px;
  border-radius:999px;
  background:rgba(255,255,255,0.92);
  border:0;
  transform:scale(1);
  transition:transform var(--lp-fade) var(--lp-ease), background-color var(--lp-fade) var(--lp-ease);
}
.lp-seek:hover::-webkit-slider-thumb,
.lp-seek:focus-visible::-webkit-slider-thumb{
  transform:scale(1.08);
}
.lp-seek:hover::-moz-range-thumb,
.lp-seek:focus-visible::-moz-range-thumb{
  transform:scale(1.08);
}
.lp-seek:active::-webkit-slider-thumb{
  transform:scale(1.14);
}
.lp-seek:active::-moz-range-thumb{
  transform:scale(1.14);
}
.lp-scrub-preview{
  position:absolute;
  bottom:100%;
  left:0;
  margin-bottom:10px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity var(--lp-fade) var(--lp-ease);
  z-index:20;
}
.lp-scrub-preview.is-visible{
  opacity:1;
  visibility:visible;
}
.lp-scrub-preview-img{
  background-repeat:no-repeat;
  border-radius:4px;
  box-shadow:0 4px 14px rgba(0,0,0,0.45);
  background-color:#000;
}
.lp-scrub-preview-time{
  font-size:11px;
  color:rgba(255,255,255,0.92);
  background:rgba(0,0,0,0.7);
  padding:1px 6px;
  border-radius:3px;
  font-variant-numeric:tabular-nums;
}
.lp-vol-group{
  display:inline-flex;
  align-items:center;
}
.lp-vol{
  flex:0 0 104px;
  min-width:104px;
  max-width:132px;
  width:104px;
  display:block;
  -webkit-appearance:none;
  appearance:none;
  height:4px;
  border-radius:999px;
  background:rgba(255,255,255,0.30);
  outline:none;
  transition:background 120ms linear;
}
.lp-vol::-webkit-slider-thumb{appearance:none;width:14px;height:14px;border-radius:999px;background:rgba(255,255,255,0.95);border:1px solid rgba(0,0,0,0.20);}
.lp-vol::-moz-range-thumb{width:14px;height:14px;border-radius:999px;background:rgba(255,255,255,0.95);border:1px solid rgba(0,0,0,0.20);}
.lp-vol::-moz-range-track{height:4px;border-radius:999px;background:rgba(255,255,255,0.30);}
.lp-quality-bar{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:12px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.lp-quality{display:flex;align-items:center;gap:8px;margin-left:2px;}
.remote-panel .lp-quality{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:6px;
  margin-left:0;
}
.lp-quality-label{font-size:12px;color:rgba(255,255,255,0.65);}
.lp-quality-hint{font-size:12px;color:rgba(255,255,255,0.45);}
.lp-quality-select{
  border:1px solid rgba(255,255,255,0.12);
  background:rgba(0,0,0,0.28);
  color:rgba(255,255,255,0.86);
  -webkit-text-fill-color: rgba(255,255,255,0.86);
  /* Helps Safari/iOS render the opened <select> menu with dark options instead of black-on-black. */
  color-scheme: dark;
  border-radius:10px;
  padding:6px 8px;
  font-size:12px;
}
body[data-theme="light"]:not(.lp-cinema) .lp-quality-label{color:rgba(15,23,42,0.66);}
body[data-theme="light"]:not(.lp-cinema) .lp-quality-hint{color:rgba(15,23,42,0.50);}
body[data-theme="light"]:not(.lp-cinema) .lp-quality-select{
  border-color:rgba(15,23,42,0.14);
  background:rgba(255,255,255,0.76);
  color:rgba(15,23,42,0.86);
  -webkit-text-fill-color: rgba(15,23,42,0.86);
  color-scheme: light;
}
.lp-quality-select:focus{
  outline:none;
  border-color:rgba(255,255,255,0.22);
  box-shadow:0 0 0 3px rgba(255,255,255,0.08);
  background:rgba(0,0,0,0.28);
  color:rgba(255,255,255,0.92);
  -webkit-text-fill-color: rgba(255,255,255,0.92);
}
body[data-theme="light"]:not(.lp-cinema) .lp-quality-select:focus{
  border-color:rgba(15,23,42,0.26);
  box-shadow:0 0 0 3px rgba(15,23,42,0.10);
  background:rgba(255,255,255,0.84);
  color:rgba(15,23,42,0.92);
  -webkit-text-fill-color: rgba(15,23,42,0.92);
}
.lp-quality-select option{
  background:#0b1220;
  color:rgba(255,255,255,0.92);
}
body[data-theme="light"]:not(.lp-cinema) .lp-quality-select option{
  background:#ffffff;
  color:rgba(15,23,42,0.94);
}
.lp-quality-select:disabled{opacity:0.6;}

.lp-settings-panel{
  position:absolute;
  right:12px;
  bottom:64px;
  z-index:6;
  min-width:190px;
  border:1px solid rgba(255,255,255,0.14);
  border-radius:12px;
  background:rgba(8,12,20,0.94);
  box-shadow:0 20px 48px rgba(0,0,0,0.45);
  padding:10px;
}
.lp-settings-panel[hidden]{display:none !important;}
.lp-settings-row{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.remote-panel .lp-settings-row{
  align-items:center;
}
.lp-settings-label{font-size:12px;color:rgba(255,255,255,0.75);}
.lp-settings-select{
  border:1px solid rgba(255,255,255,0.12);
  border-radius:8px;
  background:rgba(0,0,0,0.22);
  color:rgba(255,255,255,0.9);
  font-size:12px;
  padding:5px 7px;
}
body[data-theme="light"]:not(.lp-cinema) .lp-settings-panel{
  border-color:rgba(15,23,42,0.16);
  background:rgba(255,255,255,0.80);
  box-shadow:0 20px 48px rgba(15,23,42,0.18);
}
body[data-theme="light"]:not(.lp-cinema) .lp-settings-label{color:rgba(15,23,42,0.70);}
body[data-theme="light"]:not(.lp-cinema) .lp-settings-select{
  border-color:rgba(15,23,42,0.14);
  background:rgba(255,255,255,0.74);
  color:rgba(15,23,42,0.88);
}
.lp-embed-remote-panel{
  position:absolute;
  right:12px;
  bottom:78px;
  z-index:9;
  width:min(290px, calc(100% - 24px));
  border:1px solid rgba(255,255,255,0.18);
  border-radius:12px;
  background:rgba(6,11,19,0.96);
  box-shadow:0 20px 44px rgba(0,0,0,0.46);
  backdrop-filter:blur(8px);
  padding:10px;
}
.lp-embed-remote-panel[hidden]{display:none !important;}
.lp-embed-remote-panel.is-open{display:block;}
.lp-embed-remote-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:8px;
}
.lp-embed-remote-title{
  margin:0;
  font-size:12px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:rgba(226,232,240,0.9);
}
.lp-embed-remote-close{
  border:1px solid rgba(148,163,184,0.36);
  background:rgba(15,23,42,0.66);
  color:rgba(241,245,249,0.9);
  border-radius:8px;
  font-size:12px;
  padding:4px 8px;
  cursor:pointer;
}
.lp-embed-remote-body{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.lp-embed-remote-body .lp-settings-row{
  align-items:center;
}
.lp-embed-remote-body .lp-settings-select{
  width:auto;
  min-width:88px;
}
body[data-theme="light"]:not(.lp-cinema) .lp-embed-remote-panel{
  border-color:rgba(15,23,42,0.18);
  background:rgba(255,255,255,0.94);
  box-shadow:0 18px 42px rgba(15,23,42,0.2);
}
body[data-theme="light"]:not(.lp-cinema) .lp-embed-remote-title{
  color:rgba(15,23,42,0.78);
}
body[data-theme="light"]:not(.lp-cinema) .lp-embed-remote-close{
  border-color:rgba(15,23,42,0.16);
  background:rgba(241,245,249,0.84);
  color:rgba(15,23,42,0.82);
}
@media (max-width: 900px){
  body.lp-embed-mode .lp-embed-remote-panel{
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    top:auto;
    width:auto;
    box-sizing:border-box;
    border-radius:12px 12px 0 0;
    max-height:70%;
    overflow-y:auto;
    z-index:100;
  }
}

.lp-admin-tools{
  position:static;
  z-index:auto;
  border:1px solid rgba(255,255,255,0.16);
  border-radius:12px;
  background:rgba(7,12,22,0.9);
  box-shadow:0 14px 38px rgba(0,0,0,0.36);
  padding:9px 10px;
  width:100%;
  max-width:none;
}
.lp-admin-tools[hidden]{display:none !important;}
.lp-admin-tools-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:0 0 8px;
}
.lp-admin-tools-title{
  font-size:11px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:rgba(226,232,240,0.9);
  font-weight:700;
}
.lp-admin-tools-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.lp-admin-tools-readouts{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:8px;
}
.lp-admin-tool-btn{
  border:1px solid rgba(148,163,184,0.5);
  background:rgba(15,23,42,0.72);
  color:rgba(241,245,249,0.95);
  border-radius:9px;
  font-size:12px;
  padding:6px 9px;
  cursor:pointer;
}
.lp-admin-tool-btn:hover{
  border-color:rgba(125,211,252,0.66);
  color:#ffffff;
}
.lp-admin-tool-btn[disabled]{
  cursor:not-allowed;
  opacity:0.55;
}
.lp-admin-tool-btn[aria-pressed="true"]{
  border-color:rgba(134,239,172,0.65);
  background:rgba(22,101,52,0.4);
}
.lp-admin-tools-note{
  margin:8px 0 0;
  font-size:11px;
  color:rgba(203,213,225,0.78);
}

.lp-diagnostics-panel{
  position:absolute;
  top:12px;
  right:12px;
  left:auto;
  z-index:6;
  min-width:220px;
  max-width:min(320px, calc(100% - 24px));
  border:1px solid rgba(148,163,184,0.38);
  border-radius:10px;
  background:rgba(2,6,23,0.74);
  padding:8px 10px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:11px;
  line-height:1.35;
  color:rgba(226,232,240,0.92);
}
.lp-diagnostics-panel[hidden]{display:none !important;}
.lp-diagnostics-title{
  margin:0 0 6px;
  font-size:10px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:rgba(148,163,184,0.92);
}
.lp-diagnostics-grid{
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:3px;
}
.lp-diagnostics-row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
}
.lp-diagnostics-label{
  color:rgba(148,163,184,0.86);
}
.lp-diagnostics-value{
  color:rgba(226,232,240,0.96);
  text-align:right;
}
.lp-diagnostics-value.is-warn{color:#facc15;}
.lp-diagnostics-value.is-crit{color:#f87171;}
.lp-diagnostics-fps-note{
  margin:6px 0 0;
  font-size:10px;
  line-height:1.4;
  color:rgba(148,163,184,0.68);
}

.lp-timecode-overlay,
.lp-fps-overlay{
  position:static;
  z-index:auto;
  display:inline-flex;
  align-items:center;
  pointer-events:none;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:12px;
  line-height:1.2;
  letter-spacing:0.02em;
  color:rgba(248,250,252,0.94);
  background:rgba(0,0,0,0.56);
  border:1px solid rgba(255,255,255,0.16);
  border-radius:9px;
  padding:6px 8px;
}

/* Optional debug readout (enabled via ?lp_player_debug=1 or localStorage lp_player_debug=1). */
.lp-player-debug{
  position:absolute;
  left:10px;
  top:10px;
  z-index:9;
  pointer-events:none;
  max-width:min(520px, calc(100% - 20px));
  background:rgba(0,0,0,0.55);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:12px;
  padding:10px 12px;
  color:rgba(255,255,255,0.88);
  font-size:11px;
  line-height:1.35;
  white-space:pre-wrap;
}

/* Minimal icons */
.lp-ic{display:block;width:18px;height:18px;position:relative;line-height:1;color:currentColor;}
.lp-ic-play::before{content:"";position:absolute;inset:0;margin:auto;
  width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid currentColor;
}
.lp-ic-pause::before{content:"";position:absolute;left:4px;top:3px;width:4px;height:12px;background:currentColor;box-shadow:6px 0 0 currentColor;border-radius:1px;}
.lp-ic-vol::before{
  content:"";
  position:absolute;
  left:1px;
  top:3px;
  width:9px;
  height:10px;
  background:currentColor;
  clip-path: polygon(0 20%, 45% 20%, 100% 0, 100% 100%, 45% 80%, 0 80%);
}
.lp-ic-vol::after{
  content:"";
  position:absolute;
  left:11px;
  top:4px;
  width:4px;
  height:8px;
  border:1.5px solid currentColor;
  border-left:0;
  border-radius:0 8px 8px 0;
}
.lp-ic-muted::before{
  content:"";
  position:absolute;
  left:1px;
  top:3px;
  width:9px;
  height:10px;
  background:currentColor;
  clip-path: polygon(0 20%, 45% 20%, 100% 0, 100% 100%, 45% 80%, 0 80%);
}
.lp-ic-muted::after{
  content:"";
  position:absolute;
  left:-1px;
  top:8px;
  width:20px;
  height:2px;
  background:currentColor;
  border-radius:1px;
  transform: rotate(-45deg);
  transform-origin: 50% 50%;
}
.lp-ic-fs::before{content:"";position:absolute;inset:2px;border:1.5px solid currentColor;border-radius:3px;}
.lp-ic-pip::before{content:"";position:absolute;inset:2px;border:1.5px solid currentColor;border-radius:2px;}
.lp-ic-pip::after{content:"";position:absolute;right:3px;bottom:3px;width:7px;height:6px;background:currentColor;border-radius:1px;}
.lp-ic-cc::before{
  content:"CC";
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:10px;
  letter-spacing:0.03em;
  font-weight:700;
  color:currentColor;
  line-height:1;
}
.lp-ic-settings::before{
  content:"";
  position:absolute;
  inset:2px;
  border-radius:999px;
  border:1.5px solid currentColor;
}
.lp-ic-settings::after{
  content:"";
  position:absolute;
  left:6px;
  top:-1px;
  width:4px;
  height:18px;
  background:linear-gradient(to bottom, transparent 0 15%, currentColor 15% 25%, transparent 25% 40%, currentColor 40% 50%, transparent 50% 65%, currentColor 65% 75%, transparent 75% 100%);
}

/* Meta */
.lp-meta{padding-top:18px;}
.lp-stage{position:relative;z-index:1;}
.lp-meta{position:relative;z-index:2;}
.lp-resume-banner{
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  margin: 10px 0 14px 0;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.10);
  background: rgba(0,0,0,0.16);
  color: rgba(255,255,255,0.84);
  box-shadow: 0 18px 55px rgba(0,0,0,0.28);
}
.lp-resume-banner[hidden]{display:none !important;}
.lp-resume-copy{display:flex;flex-direction:column;gap:2px;}
.lp-resume-title{font-size:13px;color:rgba(255,255,255,0.90);font-weight:600;}
.lp-resume-sub{font-size:12px;color:rgba(255,255,255,0.60);}
.lp-resume-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
.lp-resume-btn{
  border:1px solid rgba(255,255,255,0.14);
  background:rgba(0,0,0,0.22);
  color:rgba(255,255,255,0.86);
  padding:8px 10px;
  border-radius:12px;
  cursor:pointer;
}
.lp-resume-btn:hover{background:rgba(255,255,255,0.06);}
.lp-resume-btn.secondary{opacity:0.92;}
body[data-theme="light"]:not(.lp-cinema) .lp-resume-banner{
  border-color:rgba(15,23,42,0.12);
  background:rgba(241,245,249,0.62);
  color:rgba(15,23,42,0.82);
  box-shadow:0 16px 38px rgba(15,23,42,0.14);
}
body[data-theme="light"]:not(.lp-cinema) .lp-resume-title{
  color:rgba(15,23,42,0.90);
}
body[data-theme="light"]:not(.lp-cinema) .lp-resume-sub{
  color:rgba(15,23,42,0.62);
}
body[data-theme="light"]:not(.lp-cinema) .lp-resume-btn{
  border-color:rgba(15,23,42,0.16);
  background:rgba(255,255,255,0.72);
  color:rgba(15,23,42,0.86);
}
body[data-theme="light"]:not(.lp-cinema) .lp-resume-btn:hover{
  background:rgba(255,255,255,0.84);
}
.lp-byline-wrap{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px;}
.lp-byline-wrap .lp-byline{flex:1 1 auto;min-width:0;margin:0;}
.lp-meta-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex-shrink:0;}
.lp-meta-badge{font-size:11px;font-weight:500;letter-spacing:0.03em;padding:2px 8px;border-radius:999px;border:1px solid rgba(255,255,255,0.18);color:rgba(255,255,255,0.52);white-space:nowrap;}
.lp-meta-badge-cc{border-color:rgba(147,197,253,0.45);color:rgba(147,197,253,0.90);}
.lp-meta-badge-mature{border-color:rgba(252,165,165,0.40);color:rgba(252,165,165,0.85);}
.lp-meta-badge-ai{border-color:rgba(167,243,208,0.35);color:rgba(167,243,208,0.80);}
.lp-meta-badge-auto-cap{border-color:rgba(196,181,253,0.40);color:rgba(196,181,253,0.85);}
/* Solid fill, not an outline pill like its siblings above -- deliberately
   matches .lp-imdb-badge's "stands out like a real badge/logo" treatment
   (same #F5C518 family, already established right next to this row for
   the same reason) rather than inventing a new visual language. Added
   2026-10-10, moved here from the player control bar per Clint: this is
   a page-metadata fact about the video, not a playback control. No
   companion "HD" badge exists -- every video already gets an HD
   rendition regardless of its real source resolution, so an HD badge
   would be meaningless noise on nearly every video. */
.lp-meta-badge-4k{background:#F5C518;color:#000;border-color:#F5C518;font-weight:700;}
body[data-theme="light"]:not(.lp-cinema) .lp-meta-badge{border-color:rgba(15,23,42,0.18);color:rgba(15,23,42,0.50);}
body[data-theme="light"]:not(.lp-cinema) .lp-meta-badge-cc{border-color:rgba(59,130,246,0.40);color:rgba(37,99,235,0.85);}
body[data-theme="light"]:not(.lp-cinema) .lp-meta-badge-mature{border-color:rgba(220,38,38,0.30);color:rgba(185,28,28,0.80);}
body[data-theme="light"]:not(.lp-cinema) .lp-meta-badge-ai{border-color:rgba(5,150,105,0.30);color:rgba(4,120,87,0.80);}
body[data-theme="light"]:not(.lp-cinema) .lp-meta-badge-auto-cap{border-color:rgba(109,40,217,0.25);color:rgba(109,40,217,0.80);}
body[data-theme="light"]:not(.lp-cinema) .lp-meta-badge-4k{background:#F5C518;color:#000;border-color:#F5C518;}
.lp-title{font-size:24px;line-height:1.2;margin:0 0 8px 0;}
.lp-sequence{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;color:var(--lp-muted);font-size:13px;margin:0 0 8px 0;}
.lp-sequence-pos a{color:rgba(255,255,255,0.92);text-decoration:underline;text-underline-offset:2px;}
.lp-sequence-pos a:hover{color:#fff;}
.lp-sequence-nav{display:flex;gap:14px;}
.lp-sequence-link{color:rgba(255,255,255,0.92);text-decoration:underline;text-underline-offset:2px;}
.lp-sequence-link:hover{color:#fff;}
body[data-theme="light"]:not(.lp-cinema) .lp-sequence-pos a,
body[data-theme="light"]:not(.lp-cinema) .lp-sequence-link{color:rgba(15,23,42,0.82);}
body[data-theme="light"]:not(.lp-cinema) .lp-sequence-pos a:hover,
body[data-theme="light"]:not(.lp-cinema) .lp-sequence-link:hover{color:rgba(15,23,42,0.98);}
.lp-byline{display:flex;gap:10px;align-items:center;color:var(--lp-muted);font-size:14px;}
.lp-byline a{
  color:rgba(255,255,255,0.92);
  text-decoration:underline;
  text-underline-offset:2px;
}
.lp-byline a:hover{color:#fff;}
.lp-dot{opacity:0.55;}
.lp-desc{margin:14px 0 0 0;color:rgba(255,255,255,0.80);line-height:1.55;}
.lp-disclosure{
  margin-top:12px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,0.08);
  background:rgba(255,255,255,0.05);
  color:rgba(255,255,255,0.82);
  font-size:13px;
  line-height:1.5;
  max-width:72ch;
}
.lp-disclosure strong{color:rgba(255,255,255,0.9);}
.lp-disclosure .muted{color:rgba(255,255,255,0.6);}
body[data-theme="light"]:not(.lp-cinema) .lp-title{color:rgba(15,23,42,0.94);}
body[data-theme="light"]:not(.lp-cinema) .lp-byline a{color:rgba(15,23,42,0.82);}
body[data-theme="light"]:not(.lp-cinema) .lp-byline a:hover{color:rgba(15,23,42,0.98);}
body[data-theme="light"]:not(.lp-cinema) .lp-desc{color:rgba(15,23,42,0.78);}
body[data-theme="light"]:not(.lp-cinema) .lp-disclosure{
  border-color:rgba(15,23,42,0.10);
  background:rgba(241,245,249,0.54);
  color:rgba(15,23,42,0.80);
}
body[data-theme="light"]:not(.lp-cinema) .lp-disclosure strong{color:rgba(15,23,42,0.90);}
body[data-theme="light"]:not(.lp-cinema) .lp-disclosure .muted{color:rgba(15,23,42,0.56);}
.lp-director-note{
  margin-top:14px;
  padding:12px 14px;
  border-radius:12px;
  border-left:2px solid rgba(255,255,255,0.18);
  color:rgba(255,255,255,0.78);
  font-size:13px;
  line-height:1.65;
  max-width:72ch;
  font-style:italic;
}
.lp-director-note p{margin:0;}
.lp-director-note__label{
  font-style:normal;
  font-size:10px;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:rgba(255,255,255,0.40);
  margin-bottom:6px !important;
}
body[data-theme="light"]:not(.lp-cinema) .lp-director-note{
  border-left-color:rgba(15,23,42,0.15);
  color:rgba(15,23,42,0.72);
}
body[data-theme="light"]:not(.lp-cinema) .lp-director-note__label{color:rgba(15,23,42,0.40);}
body.lp-cinema .lp-director-note{display:none;}
.lp-imdb-link{display:inline-flex;align-items:center;text-decoration:none;vertical-align:middle;margin-left:10px;}
.lp-imdb-badge{display:inline-block;background:#F5C518;color:#000;font-family:Arial,sans-serif;font-size:12px;font-weight:700;letter-spacing:0.04em;padding:2px 7px;border-radius:3px;}
.lp-imdb-link:hover .lp-imdb-badge{background:#e6b800;}
.lp-fundraiser-link{display:inline-flex;align-items:center;text-decoration:none;margin-top:8px;background:rgba(255,255,255,0.10);border:1px solid rgba(255,255,255,0.22);color:rgba(255,255,255,0.90);font-size:12px;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;padding:4px 12px;border-radius:999px;}
.lp-fundraiser-link:hover{background:rgba(255,255,255,0.18);color:#fff;}
body[data-theme="light"]:not(.lp-cinema) .lp-fundraiser-link{background:rgba(15,23,42,0.06);border-color:rgba(15,23,42,0.18);color:rgba(15,23,42,0.82);}
body[data-theme="light"]:not(.lp-cinema) .lp-fundraiser-link:hover{background:rgba(15,23,42,0.12);color:rgba(15,23,42,0.95);}


/* Actions */
.lp-actions{margin-top:16px;display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.lp-actions-spacer{flex:1;}
.lp-action{
  border:1px solid rgba(255,255,255,0.12);
  background:rgba(0,0,0,0.20);
  color:rgba(255,255,255,0.82);
  padding:10px 12px;border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  line-height:1.1;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
  box-sizing:border-box;
}
body[data-theme="light"]:not(.lp-cinema) .lp-action{
  border-color:rgba(15,23,42,0.16);
  background:rgba(241,245,249,0.64);
  color:rgba(15,23,42,0.82);
}
.lp-action-library{
  gap:6px;
}
.lp-action-library select,
.lp-action-library button{
  background:transparent;
  color:inherit;
  border:0;
  font:inherit;
  cursor:pointer;
  min-width:0;
}
.lp-action-library select{
  flex:0 1 auto;
  max-width:40%;
}
.lp-action-library button{
  flex:1 1 auto;
  white-space:nowrap;
}
.player-actions-grid .lp-action{
  width:var(--lp-actions-width);
  min-width:var(--lp-actions-width);
  max-width:var(--lp-actions-width);
  min-height:34px;
  padding:7px 10px;
  border-radius:10px;
  font-size:13px;
}
#lpReportBtn{min-width:108px;}
.report-attention{
  border-color:rgba(251,146,60,0.58);
  color:rgba(255,237,213,0.96);
  font-weight:700;
}
.report-attention:hover{
  border-color:rgba(251,146,60,0.82);
  color:#fff;
}
.lp-action:hover{border-color:rgba(255,255,255,0.20);color:rgba(255,255,255,0.95);}
body[data-theme="light"]:not(.lp-cinema) .lp-action:hover{
  border-color:rgba(15,23,42,0.26);
  color:rgba(15,23,42,0.95);
  background:rgba(226,232,240,0.62);
}
/* Keep Cinema Pass actions text intentionally dim, even against later generic hover rules. */
body.lp-cinema .player-actions-panel .player-panel-title{
  color:rgba(120,132,151,0.72) !important;
}
body.lp-cinema .player-actions-grid .lp-action{
  color:rgba(94,109,130,0.78) !important;
}
body.lp-cinema .player-actions-grid .lp-action-cinema,
body.lp-cinema .player-actions-grid .lp-action-loop{
  color:rgba(154,170,194,0.84) !important;
}
body.lp-cinema .player-actions-grid .lp-action:hover{
  color:rgba(124,140,163,0.82) !important;
}
body.lp-cinema .player-actions-grid .lp-action[aria-pressed="true"]{
  color:rgba(145,162,186,0.86) !important;
}
.lp-note{margin-top:10px;color:var(--lp-muted);font-size:13px;display:none;}
.lp-embed-note{
  margin-top:10px;
  color:rgba(255,255,255,0.72);
  font-size:13px;
  display:block;
  line-height:1.45;
}
.lp-embed-note.is-error{
  color:rgba(254,202,202,0.94);
  border:1px solid rgba(248,113,113,0.35);
  background:rgba(127,29,29,0.18);
  border-radius:10px;
  padding:8px 10px;
}
.lp-embed-note.is-ok{
  color:rgba(224,242,254,0.96);
  border:1px solid rgba(56,189,248,0.36);
  background:rgba(8,47,73,0.22);
  border-radius:10px;
  padding:8px 10px;
}
.lp-version-history{
  margin-top:22px;
  padding:16px;
  border:1px solid var(--lp-border);
  border-radius:var(--lp-radius);
  background:rgba(255,255,255,0.04);
}
.lp-version-history h2{font-size:15px;margin:0 0 10px;}
.lp-version-history .version-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}
.lp-version-history .version-list li{
  border:1px solid rgba(255,255,255,0.08);
  border-radius:12px;
  padding:10px 12px;
  background:rgba(0,0,0,0.2);
}
.lp-version-history p{margin:6px 0 0;color:var(--lp-text);}
@media (max-width: 768px){
  .lp-note{display:block;}
}
@media (max-width: 520px){
  .lp-action{padding:9px 11px;}
  .player-actions-grid{
    grid-template-columns:minmax(0, 1fr);
  }
  #lpReportBtn{min-width:0;}
  .lp-btn{width:var(--lp-control-hit-mobile);height:var(--lp-control-hit-mobile);}
  .lp-controls{flex-wrap:nowrap;gap:8px;padding:10px 12px 14px;overflow:visible;align-items:center;}
  #lpPlay,#lpMute,#lpFs,#lpEmbedRemoteBtn{flex:0 0 auto;}
  .lp-seek{flex:1 1 auto;min-width:0;width:auto;}
  .lp-vol,
  .lp-frame.lp-aspect-portrait .lp-vol{
    position:absolute;
    left:var(--lp-mobile-vol-x, 84px);
    top:4px;
    bottom:auto;
    width:116px;
    min-width:116px;
    max-width:116px;
    margin:0;
    opacity:0;
    pointer-events:none;
    transform:rotate(-90deg);
    transform-origin:0 50%;
    z-index:9;
  }
  .lp-controls.is-vol-open .lp-vol,
  .lp-frame.lp-aspect-portrait .lp-controls.is-vol-open .lp-vol{
    opacity:1;
    pointer-events:auto;
  }
  .lp-quality-badge{display:none;}
  .lp-frame.lp-aspect-portrait .lp-quality-badge{display:none;}
  .lp-settings-row{flex-wrap:wrap;justify-content:flex-start;}
  .lp-settings-select{width:100%;}
  .lp-admin-tools-row{gap:6px;}
  .lp-admin-tool-btn{font-size:11px;padding:5px 8px;}
  .remote-panel{
    width:min(96vw, 320px);
    max-width:min(96vw, 320px);
  }
}
@media (max-width: 900px) and (pointer: coarse){
  .lp-controls{flex-wrap:nowrap;gap:8px;padding:10px 12px 14px;overflow:visible;align-items:center;}
  #lpPlay,#lpMute,#lpFs,#lpEmbedRemoteBtn{flex:0 0 auto;}
  .lp-seek{flex:1 1 auto;min-width:0;width:auto;}
  .lp-vol,
  .lp-frame.lp-aspect-portrait .lp-vol{
    position:absolute;
    left:var(--lp-mobile-vol-x, 84px);
    top:4px;
    bottom:auto;
    width:116px;
    min-width:116px;
    max-width:116px;
    margin:0;
    opacity:0;
    pointer-events:none;
    transform:rotate(-90deg);
    transform-origin:0 50%;
    z-index:9;
  }
  .lp-controls.is-vol-open .lp-vol,
  .lp-frame.lp-aspect-portrait .lp-controls.is-vol-open .lp-vol{
    opacity:1;
    pointer-events:auto;
  }
  .lp-quality-badge{display:none;}
  .lp-frame.lp-aspect-portrait .lp-quality-badge{display:none;}
}

/* ── Desktop horizontal volume reveal ────────────────────────────────────
   Hidden by default, expands on hover/focus anywhere within the mute
   button + slider group -- mirrors the click-to-mute + hover-to-adjust
   split most players use, scoped to real mouse/trackpad input only
   (pointer: fine) so touch devices (including landscape phones) are
   untouched and keep their existing tap-to-reveal popover. The group
   wrapper (not just the icon or the thin 4px slider track individually)
   is the hover target, so drifting slightly off either one -- including
   through the gap between them -- doesn't immediately lose the reveal;
   hide is also delayed so it reads as deliberate, not flickery. :focus/
   :active keep it open for the whole duration of an active drag.

   Explicitly excludes portrait-aspect videos (:not(.lp-aspect-portrait)):
   those already have their own absolutely-positioned, click-to-reveal
   popover (see the .lp-frame.lp-aspect-portrait .lp-vol rule elsewhere)
   that applies regardless of device -- on desktop Safari with a portrait
   video, both systems were fighting over the same element's width/position
   at once (hover-driven from here, click-driven from there), which is
   exactly what looked broken: the slider would start anchored at the
   portrait popover's position then visibly jump as this rule's width
   animation also tried to apply. */
@media (pointer: fine){
  .lp-frame:not(.lp-aspect-portrait) .lp-vol{
    flex:0 0 0;
    min-width:0;
    max-width:0;
    width:0;
    opacity:0;
    pointer-events:none;
    transition:flex-basis 160ms ease 220ms, max-width 160ms ease 220ms, width 160ms ease 220ms, opacity 120ms ease 220ms;
  }
  .lp-frame:not(.lp-aspect-portrait) .lp-vol-group:hover .lp-vol,
  .lp-frame:not(.lp-aspect-portrait) .lp-vol-group:focus-within .lp-vol,
  .lp-frame:not(.lp-aspect-portrait) .lp-vol:active{
    flex:0 0 104px;
    min-width:104px;
    max-width:132px;
    width:104px;
    opacity:1;
    pointer-events:auto;
    transition:flex-basis 120ms ease, max-width 120ms ease, width 120ms ease, opacity 120ms ease;
  }
}

/* Embed modal */
.lp-embed-card {
  display: none;
  position: fixed;
  inset: 0;
  margin: auto;
  max-height: min(86vh, 620px);
  background: #111;
  border-radius: 16px;
  z-index: 9999;
  width: 560px;
  max-width: 92vw;
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: 0 30px 90px rgba(0,0,0,0.55);
  padding: 14px;
  overflow-y: auto;
  box-sizing: border-box;
}
body[data-theme="light"]:not(.lp-cinema) .lp-embed-card{
  background:#ffffff;
  border-color:rgba(15,23,42,0.14);
  box-shadow:0 26px 70px rgba(15,23,42,0.20);
}
.lp-embed-card.lp-report-card{
  width: 620px;
}
.lp-embed-card.lp-screening-note-card{
  width: 620px;
}
.lp-screening-note-card #lpScreeningNotePrompt{
  white-space:pre-line;
  margin:8px 6px 10px;
}
.lp-screening-note-card #lpScreeningNoteInput{
  min-height:132px;
}
.lp-embed-card.is-open {
  display: block;
}
.lp-embed-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(6px);
  z-index: 9998;
}
.lp-embed-backdrop[hidden]{
  /* Ensure hidden always wins, even if a stale `.is-open` class sticks around. */
  display:none !important;
}
.lp-embed-backdrop.is-open {
  display: block;
}
.lp-embed-top{display:flex;justify-content:space-between;align-items:center;padding:6px 6px 10px;}
.lp-embed-title{font-size:15px;color:rgba(255,255,255,0.88);}
.lp-embed-close{border:0;background:transparent;color:rgba(255,255,255,0.7);font-size:22px;line-height:1;cursor:pointer;}
.lp-label{display:block;color:rgba(255,255,255,0.70);font-size:13px;margin:10px 6px 6px;}
.lp-select,.lp-textarea,.lp-input{
  width:100%;
  border:1px solid rgba(255,255,255,0.12);
  background:rgba(0,0,0,0.22);
  color:rgba(255,255,255,0.86);
  border-radius:12px;
  padding:10px 12px;
}
.lp-embed-row{display:flex;gap:10px;align-items:center;padding:0 6px;}
.lp-embed-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:12px 6px 6px;}
body[data-theme="light"]:not(.lp-cinema) .lp-embed-title{
  color:rgba(15,23,42,0.88);
}
body[data-theme="light"]:not(.lp-cinema) .lp-embed-close{
  color:rgba(15,23,42,0.62);
}
body[data-theme="light"]:not(.lp-cinema) .lp-embed-close:hover{
  color:rgba(15,23,42,0.9);
}
body[data-theme="light"]:not(.lp-cinema) .lp-label{
  color:rgba(15,23,42,0.66);
}
body[data-theme="light"]:not(.lp-cinema) .lp-select,
body[data-theme="light"]:not(.lp-cinema) .lp-textarea,
body[data-theme="light"]:not(.lp-cinema) .lp-input{
  border-color:rgba(15,23,42,0.16);
  background:rgba(248,250,252,0.96);
  color:rgba(15,23,42,0.88);
}
.lp-embed-credit{
  position:absolute;bottom:48px;right:10px;
  font-size:11px;color:#fff;opacity:0.55;
  text-decoration:none;pointer-events:auto;
  transition:opacity 0.2s;z-index:10;
}
.lp-embed-credit:hover{opacity:1;}
.lp-frame:not(.is-controls) .lp-embed-credit{opacity:0;pointer-events:none;}
.lp-embed-row{display:flex;gap:10px;align-items:center;padding:0 6px;}
.lp-embed-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:12px 6px 6px;}
body[data-theme="light"]:not(.lp-cinema) .lp-embed-title{
  color:rgba(15,23,42,0.88);
}
body[data-theme="light"]:not(.lp-cinema) .lp-embed-close{
  color:rgba(15,23,42,0.62);
}
body[data-theme="light"]:not(.lp-cinema) .lp-embed-close:hover{
  color:rgba(15,23,42,0.9);
}
body[data-theme="light"]:not(.lp-cinema) .lp-label{
  color:rgba(15,23,42,0.66);
}
body[data-theme="light"]:not(.lp-cinema) .lp-select,
body[data-theme="light"]:not(.lp-cinema) .lp-textarea,
body[data-theme="light"]:not(.lp-cinema) .lp-input{
  border-color:rgba(15,23,42,0.16);
  background:rgba(248,250,252,0.96);
  color:rgba(15,23,42,0.88);
}
body[data-theme="light"]:not(.lp-cinema) .lp-embed-note{
  color:rgba(15,23,42,0.70);
}
body[data-theme="light"]:not(.lp-cinema) .lp-embed-note.is-error{
  color:rgba(153,27,27,0.96);
  border-color:rgba(248,113,113,0.36);
  background:rgba(254,226,226,0.72);
}
body[data-theme="light"]:not(.lp-cinema) .lp-embed-note.is-ok{
  color:rgba(3,105,161,0.92);
  border-color:rgba(56,189,248,0.38);
  background:rgba(224,242,254,0.76);
}

.lp-player-shell.lp-embed-only{max-width:none;margin:0;padding:0;background:transparent;border-radius:0;}
.lp-player-shell.lp-embed-only .lp-frame{--lp-standard-max-vh:100dvh;}
body.lp-embed-mode .lp-player-shell.lp-embed-only .lp-quality-badge{display:none;}
body.lp-embed-mode .lp-player-shell.lp-embed-only .lp-frame{
  background:rgba(4,9,16,0.94);
  box-shadow:0 12px 34px rgba(0,0,0,0.34);
  transition:box-shadow var(--lp-fade) var(--lp-ease), background-color var(--lp-fade) var(--lp-ease);
}
body.lp-embed-mode .lp-player-shell.lp-embed-only .lp-frame.lp-embed-cinema-active{
  background:rgba(3,8,15,0.98);
  box-shadow:0 18px 48px rgba(0,0,0,0.5), 0 0 0 1px rgba(148,163,184,0.18);
}
body.lp-embed-mode.lp-embed-cinema .lp-player-shell.lp-embed-only .lp-frame{
  box-shadow:0 20px 52px rgba(0,0,0,0.56), 0 0 0 1px rgba(148,163,184,0.22);
}
body[data-theme="light"].lp-embed-mode:not(.lp-cinema) .lp-player-shell.lp-embed-only .lp-frame{
  background:rgba(255,255,255,0.96);
  box-shadow:0 14px 38px rgba(15,23,42,0.2);
}
body[data-theme="light"].lp-embed-mode:not(.lp-cinema) .lp-player-shell.lp-embed-only .lp-frame.lp-embed-cinema-active{
  box-shadow:0 18px 42px rgba(15,23,42,0.24), 0 0 0 1px rgba(15,23,42,0.14);
}

@media (max-width: 900px){
  .lp-btn{
    width:var(--lp-control-hit-mobile);
    height:var(--lp-control-hit-mobile);
  }
  .lp-frame.lp-aspect-portrait .lp-btn{
    width:var(--lp-control-hit-mobile);
    height:var(--lp-control-hit-mobile);
  }
}

@keyframes lp-fullscreen-fade{
  from{opacity:0.84;}
  to{opacity:1;}
}
.lp-frame:fullscreen .lp-video,
.lp-frame:-webkit-full-screen .lp-video,
.lp-frame:-moz-full-screen .lp-video,
.lp-frame:-ms-fullscreen .lp-video{
  animation:lp-fullscreen-fade 180ms ease;
}

/* ── Chapter markers ─────────────────────────────────────────────────── */
.lp-seek-track{position:relative;flex:1 1 auto;min-width:0;display:flex;align-items:center;}
.lp-seek-track .lp-seek{flex:1 1 auto;min-width:0;}
.lp-chapter-markers{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}
/* ── A/B loop markers ────────────────────────────────────────────────── */
.lp-ab-marker{position:absolute;top:0;bottom:0;width:2px;transform:translateX(-50%);pointer-events:none;z-index:2;border-radius:1px}
.lp-ab-marker-a{background:rgba(251,146,60,.90)}
.lp-ab-marker-b{background:rgba(52,211,153,.90)}
.lp-ab-btn.is-ab-set{background:rgba(255,255,255,.22);color:#fff;border-color:rgba(255,255,255,.30)}
body[data-theme="light"]:not(.lp-cinema) .lp-ab-btn.is-ab-set{background:rgba(15,23,42,.12);color:rgba(15,23,42,.90);border-color:rgba(15,23,42,.24)}
.remote-ab-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}
.remote-ab-title-row .remote-section-title{margin:0}
.remote-ab-onoff{display:flex;align-items:center;gap:5px;font-size:12px;cursor:pointer;user-select:none;opacity:.75}
.remote-ab-onoff:hover{opacity:1}
.remote-ab-onoff input[type="checkbox"]{cursor:pointer;width:14px;height:14px;accent-color:rgba(94,234,212,.9)}
.remote-ab-row{display:flex;gap:8px;margin-top:6px}
.remote-ab-row .lp-ab-btn{flex:1;justify-content:center}
.remote-ab-hint{margin:6px 0 0;font-size:11px;opacity:.6;line-height:1.4}
/* ── Shortcuts table ─────────────────────────────────────────────────── */
.lp-shortcuts-table{width:100%;border-collapse:collapse;font-size:15px;margin-top:4px}
.lp-shortcuts-table td{padding:8px 4px;vertical-align:middle}
.lp-shortcuts-table tr+tr td{border-top:1px solid rgba(100,116,139,.15)}
.lp-sk-key{white-space:nowrap;width:1%;padding-right:14px}
kbd{display:inline-block;padding:3px 8px;border:1px solid rgba(100,116,139,.4);border-radius:5px;font-size:13px;font-family:inherit;background:rgba(100,116,139,.08)}
.lp-chapter-marker{position:absolute;top:50%;transform:translate(-50%,-50%);width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid #000;cursor:pointer;pointer-events:auto;padding:0;display:flex;align-items:center;justify-content:center}
.lp-chapter-marker:hover{background:#e2e8f0;transform:translate(-50%,-50%) scale(1.3)}
.lp-chapter-marker-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:rgba(0,0,0,.85);color:#fff;font-size:11px;white-space:nowrap;padding:3px 7px;border-radius:4px;pointer-events:none;opacity:0;transition:opacity .15s}
.lp-chapter-marker:hover .lp-chapter-marker-tooltip{opacity:1}

/* ── Creator's note overlay ──────────────────────────────────────────── */
.lp-creator-note-overlay{position:absolute;top:14%;left:50%;transform:translateX(-50%);max-width:72%;background:rgba(0,0,0,.7);color:#fff;font-size:14px;line-height:1.45;padding:8px 14px;border-radius:6px;text-align:center;z-index:6;opacity:0;transition:opacity .3s;pointer-events:none}
.lp-creator-note-overlay:not([hidden]){opacity:1}
.lp-creator-note-overlay[hidden]{display:none}
.lp-frame.lp-aspect-portrait .lp-creator-note-overlay{display:none}
@media (max-width:640px){
  .lp-creator-note-overlay{display:none}
}

/* ── Chapter list in remote panel ────────────────────────────────────── */
.lp-chapter-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}
.lp-chapter-list li{margin:0;padding:0}
.lp-chapter-item{width:100%;text-align:left;background:none;border:none;padding:5px 8px;border-radius:4px;cursor:pointer;font-size:13px;color:inherit;transition:background .15s;display:flex;align-items:baseline;gap:8px}
.lp-chapter-item:hover{background:rgba(255,255,255,.08)}
.lp-chapter-item.is-active{font-weight:600;background:rgba(255,255,255,.12)}
.lp-chapter-ts{font-size:11px;color:rgba(255,255,255,.5);font-variant-numeric:tabular-nums;flex-shrink:0;min-width:28px}
.lp-chapter-item.is-active .lp-chapter-ts{color:rgba(255,255,255,.8)}
body[data-theme="light"]:not(.lp-cinema) .lp-chapter-ts{color:rgba(15,23,42,.45)}
body[data-theme="light"]:not(.lp-cinema) .lp-chapter-item.is-active .lp-chapter-ts{color:rgba(15,23,42,.70)}

/* ── Creator's notes panel (above action buttons, inside actions column) */
.lp-creator-notes-panel{background:var(--lp-remote-bg,#1a1a1a);border-radius:6px;padding:12px 14px 10px;margin-bottom:8px;display:flex;flex-direction:column;gap:8px;max-height:320px;max-width:100%}
.lp-creator-notes-panel[hidden]{display:none}
.lp-creator-notes-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.lp-creator-notes-panel-title{font-size:13px;font-weight:600;color:rgba(255,255,255,.9);flex:1 1 auto}
.lp-creator-notes-panel-close{background:none;border:none;color:rgba(255,255,255,.5);font-size:16px;line-height:1;cursor:pointer;padding:0 2px;flex-shrink:0}
.lp-creator-notes-panel-close:hover{color:#fff}
.lp-creator-notes-list{overflow-y:auto;display:flex;flex-direction:column;gap:6px;flex:1 1 auto;min-height:0}
.lp-creator-notes-row{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.45}
.lp-creator-notes-ts{background:none;border:none;color:rgba(255,255,255,.5);font-size:11px;font-variant-numeric:tabular-nums;cursor:pointer;flex-shrink:0;padding:0;text-decoration:underline;text-underline-offset:2px;text-decoration-color:rgba(255,255,255,.25)}
.lp-creator-notes-ts:hover{color:#fff;text-decoration-color:rgba(255,255,255,.7)}
.lp-creator-notes-body{color:rgba(255,255,255,.85);flex:1 1 auto}
.lp-creator-notes-toggle-row{display:flex;align-items:center;gap:7px;font-size:12px;color:rgba(255,255,255,.6);cursor:pointer;flex-shrink:0}
.lp-creator-notes-toggle-row input{flex-shrink:0}

/* ── Creator's notes panel - light theme ─────────────────────────────── */
body[data-theme="light"]:not(.lp-cinema) .lp-creator-notes-panel{background:rgba(255,255,255,.74);border:1px solid rgba(15,23,42,.12)}
body[data-theme="light"]:not(.lp-cinema) .lp-creator-notes-panel-title{color:rgba(15,23,42,.82)}
body[data-theme="light"]:not(.lp-cinema) .lp-creator-notes-panel-close{color:rgba(15,23,42,.42)}
body[data-theme="light"]:not(.lp-cinema) .lp-creator-notes-panel-close:hover{color:rgba(15,23,42,.88)}
body[data-theme="light"]:not(.lp-cinema) .lp-creator-notes-ts{color:rgba(15,23,42,.42);text-decoration-color:rgba(15,23,42,.20)}
body[data-theme="light"]:not(.lp-cinema) .lp-creator-notes-ts:hover{color:rgba(15,23,42,.80);text-decoration-color:rgba(15,23,42,.55)}
body[data-theme="light"]:not(.lp-cinema) .lp-creator-notes-body{color:rgba(15,23,42,.78)}
body[data-theme="light"]:not(.lp-cinema) .lp-creator-notes-toggle-row{color:rgba(15,23,42,.56)}
body[data-theme="light"]:not(.lp-cinema) .lp-creator-notes-overlay-indicator{color:rgba(15,23,42,.50)}
body[data-theme="light"]:not(.lp-cinema) .lp-inline-btn{color:rgba(15,23,42,.65)}
body[data-theme="light"]:not(.lp-cinema) .lp-inline-btn:hover{color:rgba(15,23,42,.88)}
body[data-theme="light"]:not(.lp-cinema) .lp-action.is-active{background:rgba(15,23,42,.10);color:rgba(15,23,42,.88)}

/* ── Creator's notes overlay indicator (remote panel) ────────────────── */
.lp-creator-notes-overlay-indicator{display:inline;font-size:12px;color:rgba(255,255,255,.55)}
.lp-creator-notes-overlay-indicator[hidden]{display:none}
.lp-inline-btn{background:none;border:none;color:rgba(255,255,255,.7);cursor:pointer;font-size:12px;padding:0;text-decoration:underline;text-underline-offset:2px}
.lp-inline-btn:hover{color:#fff}

/* ── Action grid active state ─────────────────────────────────────────── */
.lp-action.is-active{background:rgba(255,255,255,.18);color:#fff}

/* ── Share section in remote panel ───────────────────────────────────── */
.remote-share-time-btn{width:100%;}

/* ── Mobile player layout ────────────────────────────────────────────── */
@media (max-width: 640px) {
  /* Controls wrap so seek bar can sit in its own full-width row */
  .lp-controls {
    flex-wrap: wrap;
  }

  /* Controls always visible when paused - no hover on touch devices */
  .lp-frame.is-paused .lp-controls {
    opacity: 1;
    pointer-events: auto;
  }

  /* Hide: small play button, mute, volume, quality badge */
  .lp-controls #lpPlay,
  .lp-controls #lpMute,
  .lp-controls #lpVol,
  .lp-controls #lpPlaybackQualityBadge {
    display: none;
  }

  /* Portrait override: keep time-seek-group as display:contents on mobile.
     Base CSS sets display:flex on portrait - override it here so we can
     control time pill and seek track independently. */
  .lp-frame.lp-aspect-portrait .lp-time-seek-group {
    display: contents;
    flex: unset;
    order: unset;
  }

  /* Time pill: fills left side of the bottom row */
  .lp-controls .lp-time {
    flex: 1 1 auto;
    min-width: 0;
    order: 0;
  }

  /* Fullscreen: right side of bottom row */
  .lp-controls #lpFs {
    order: 2;
  }

  /* ── Main player: seek track ─────────────────────────────────────────── */
  /* Full-width top row; always visible on mobile so scrubbing works while paused */
  .lp-controls .lp-seek-track {
    order: -1;
    flex: 0 0 100%;
    display: flex;
  }

  /* ── Embed player: seek input now wrapped in .lp-seek-track too - same rule as main player */
  .lp-player-shell.lp-embed-only .lp-controls .lp-seek-track {
    order: -1;
    flex: 0 0 100%;
    display: flex;
  }

  /* Embed: remote button between time pill and fullscreen */
  .lp-player-shell.lp-embed-only .lp-controls .lp-btn-remote {
    order: 1;
  }
  .lp-player-shell.lp-embed-only .lp-controls #lpFs {
    order: 2;
  }
}
