.videoWrap{position:relative; background:#000; flex:0 0 auto; overflow:hidden;}
video{width:100%; height:auto; display:block; background:#000; aspect-ratio:16/9; outline:none; cursor:pointer;}
video::cue{
  background:transparent;
  color:#fff;
  font-family:var(--sans);
  font-size:1.1em;
  font-weight:600;
  text-shadow:
    -1px -1px 0 #000,
    1px -1px 0 #000,
    -1px 1px 0 #000,
    1px 1px 0 #000,
    -2px 0 0 #000,
    2px 0 0 #000,
    0 -2px 0 #000,
    0 2px 0 #000;
}

.videoOverlay{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
  z-index:5;
}
.overlayIcon{
  position:relative;
  width:100px;
  height:100px;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  transition:opacity 0.8s var(--ease-spring), transform .3s var(--ease-bounce);
  border-radius:50%;
  background:rgba(15,17,23,.55);
  border:none;
}
.overlayIcon.show{
  opacity:1;
}
.overlayIcon.pulse{
  animation:overlayPulse 0.4s var(--ease-bounce);
}
@keyframes overlayPulse{
  0%{transform:scale(1);}
  50%{transform:scale(1.18);}
  100%{transform:scale(1);}
}
.overlayIcon::before{display:none;}
.overlayIcon.show:hover{
  background:rgba(15,17,23,.65);
  transform:scale(1.08);
}
.overlayIcon i{
  font-size:36px;
  color:rgba(255,255,255,.92)!important;
  filter:drop-shadow(0 2px 10px rgba(0,0,0,.6));
  position:relative;
  z-index:2;
  transition:transform 0.3s var(--ease-bounce), color 0.3s ease;
  margin-left:4px;
}
.overlayIcon.pause i{
  margin-left:0;
}
.overlayIcon.show:hover i{
  transform:scale(1.15);
  color:rgba(255,255,255,1)!important;
}

.controls{display:flex; flex-direction:column; gap:10px; padding:12px; border-top:1px solid rgba(140,160,210,.04); flex:0 0 auto; position:relative; z-index:10;}
.controlsStrip{
  display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap;
  padding:5px 6px;
  border:none;
  background:transparent;
}
.controlsStrip::after{display:none;}
.stripDivider{width:1px; height:22px; background:rgba(140,160,210,.06); flex:0 0 auto; transition:background .2s ease, height .2s ease;}
.controlsStrip:hover .stripDivider{height:24px;}
.group{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.controlsStrip .iconBtn{box-shadow:none;}
.controlsStrip .miniCtl{box-shadow:none;}
.controlsStrip .timeChip{box-shadow:none;}

.iconBtn{
  width:40px; height:36px;
  border-radius:var(--r2);
  border:none;
  background:var(--surface-2);
  box-shadow:var(--shadow3);
  display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer; user-select:none;
  transition:all .2s var(--ease-bounce);
}
.iconBtn:hover{
  background:var(--surface-3);
  transform:translateY(-2px);
}
.iconBtn:active{
  transform:scale(.9) translateY(0);
  transition-duration:.08s;
}
.iconBtn.primary{
  background:rgba(136,164,196,.10);
}
.iconBtn.primary:hover{
  background:rgba(136,164,196,.16);
  box-shadow:0 0 12px rgba(136,164,196,.10);
}
.iconBtn .fa{font-size:15px; color:var(--iconStrong)!important; opacity:.9; transition:transform .2s var(--ease-bounce), opacity .15s ease;}
.iconBtn:hover .fa{transform:scale(1.15); opacity:1;}

.timeChip{display:inline-flex; align-items:center; gap:8px; padding:6px 9px; border-radius:var(--r2); border:none; background:var(--surface-2); box-shadow:var(--shadow3); font-family:var(--mono); font-size:12px; color:var(--text); letter-spacing:.02em; font-variant-numeric:tabular-nums; transition:background .2s ease;}
.timeChip:hover{background:var(--surface-3);}
.timeDot{width:8px; height:8px; border-radius:999px; background:rgba(136,164,196,.60); opacity:.95; transition:transform .3s ease, background .3s ease; animation:pulse 2s ease-in-out infinite;}
@keyframes pulse{0%,100%{transform:scale(1);opacity:.95;} 50%{transform:scale(1.2);opacity:1;}}

.seekWrap{display:flex; align-items:center; gap:10px; width:100%; position:relative;}
.seekTrack{
  position:absolute;
  left:0; right:0; top:50%;
  height:10px;
  transform:translateY(-50%);
  border-radius:999px;
  background:rgba(140,165,220,.04);
  border:1px solid rgba(140,165,220,.06);
  box-shadow:var(--shadowInset);
  overflow:hidden;
  pointer-events:none;
  transition:height .2s var(--ease-bounce), border-color .2s ease;
}
.seekWrap:hover .seekTrack{height:12px; border-color:rgba(140,165,220,.09);}
.seekFill{
  height:100%;
  width:0%;
  background:rgba(136,164,196,.50);
  border-radius:999px 0 0 999px;
  transition:width .1s linear, background .2s ease;
}
.seekWrap:hover .seekFill{background:rgba(136,164,196,.62);}
.seek{-webkit-appearance:none; appearance:none; width:100%; height:18px; border-radius:999px; background:transparent; border:none; box-shadow:none; outline:none; position:relative; z-index:2; cursor:pointer; margin:0;}
.seek::-webkit-slider-runnable-track{background:transparent; height:18px;}
.seek::-webkit-slider-thumb{-webkit-appearance:none; appearance:none; width:16px; height:16px; border-radius:999px; border:2px solid rgba(200,210,230,.28); background:rgba(220,228,240,.88); box-shadow:0 2px 6px rgba(0,0,0,.30); cursor:pointer; transition:transform .2s var(--ease-bounce), box-shadow .2s ease, border-color .2s ease; margin-top:0;}
.seek:hover::-webkit-slider-thumb{transform:scale(1.2); box-shadow:0 2px 8px rgba(0,0,0,.35), 0 0 10px rgba(136,164,196,.15); border-color:rgba(200,210,230,.40);}
.seek:active::-webkit-slider-thumb{transform:scale(1.05); transition-duration:.08s;}
.seek::-moz-range-track{background:transparent; height:18px;}
.seek::-moz-range-thumb{width:16px; height:16px; border-radius:999px; border:2px solid rgba(200,210,230,.28); background:rgba(220,228,240,.88); box-shadow:0 2px 6px rgba(0,0,0,.30); cursor:pointer;}

.miniCtl{display:flex; align-items:center; gap:8px; padding:6px 9px; border-radius:var(--r2); border:none; background:var(--surface-2); box-shadow:var(--shadow3); position:relative; z-index:3; transition:all .2s var(--ease-bounce);}
.miniCtl:hover{background:var(--surface-3); transform:translateY(-1px);}
.miniCtl:active{transform:scale(.97) translateY(0); transition-duration:.08s;}
.miniCtl .fa{font-size:14px; color:var(--iconStrong)!important; opacity:.95; flex:0 0 auto; transition:transform .2s var(--ease-bounce), opacity .15s ease;}
.miniCtl:hover .fa{transform:scale(1.1); opacity:1;}

.volWrap{position:relative; width:120px; height:14px; display:flex; align-items:center;}
.volTrack{
  position:absolute;
  left:0; right:0; top:50%;
  height:6px;
  transform:translateY(-50%);
  border-radius:999px;
  background:rgba(140,165,220,.04);
  border:1px solid rgba(140,165,220,.06);
  overflow:hidden;
  pointer-events:none;
  transition:height .2s var(--ease-bounce), border-color .2s ease;
}
.volWrap:hover .volTrack{height:8px; border-color:rgba(140,165,220,.09);}
.volFill{
  height:100%;
  width:100%;
  background:rgba(136,164,196,.40);
  border-radius:999px 0 0 999px;
  transition:width .05s linear, background .2s ease;
}
.volWrap:hover .volFill{background:rgba(136,164,196,.55);}
.vol{-webkit-appearance:none; appearance:none; width:100%; height:14px; border-radius:999px; background:transparent; border:none; outline:none; position:relative; z-index:2; cursor:pointer; margin:0;}
.vol::-webkit-slider-runnable-track{background:transparent; height:14px;}
.vol::-webkit-slider-thumb{-webkit-appearance:none; appearance:none; width:14px; height:14px; border-radius:999px; border:2px solid rgba(200,210,230,.28); background:rgba(220,228,240,.88); box-shadow:0 1px 4px rgba(0,0,0,.25); cursor:pointer; transition:transform .2s var(--ease-bounce), box-shadow .2s ease;}
.vol:hover::-webkit-slider-thumb{transform:scale(1.25); box-shadow:0 1px 6px rgba(0,0,0,.30), 0 0 8px rgba(136,164,196,.12);}
.vol::-moz-range-track{background:transparent; height:14px;}
.vol::-moz-range-thumb{width:14px; height:14px; border-radius:999px; border:2px solid rgba(200,210,230,.28); background:rgba(220,228,240,.88); box-shadow:0 1px 4px rgba(0,0,0,.25); cursor:pointer;}

.volTooltip{
  position:absolute;
  bottom:calc(100% + 12px);
  left:0;
  padding:8px 12px;
  border-radius:var(--r2);
  background:rgba(18,21,30,.95);
  border:1px solid rgba(140,160,210,.10);
  color:#fff;
  font-family:var(--mono);
  font-size:13px;
  font-weight:400;
  letter-spacing:.02em;
  white-space:nowrap;
  pointer-events:none;
  opacity:0;
  transform:translateX(-50%) translateY(4px) scale(.95);
  transition:opacity .2s ease, transform .25s var(--ease-bounce), left .05s linear;
  box-shadow:var(--shadow2);
  z-index:100;
}
.volTooltip::before{display:none;}
.volTooltip::after{
  content:"";
  position:absolute;
  top:100%;
  left:50%;
  transform:translateX(-50%);
  border:6px solid transparent;
  border-top-color:rgba(18,21,30,.95);
}
.volTooltip.show{
  opacity:1;
  transform:translateX(-50%) translateY(0) scale(1);
}

.speedBox{display:flex; align-items:center; gap:10px; position:relative;}
.speedBtn{border:none; outline:none; background:transparent; color:var(--text); font-family:var(--mono); font-size:12px; letter-spacing:0; padding:0 2px; cursor:pointer; line-height:1; display:inline-flex; align-items:center; gap:8px; transition:color .15s ease, transform .15s ease;}
.speedBtn span:first-child{min-width:3.5ch; text-align:right; transition:transform .15s var(--ease-bounce);}
.speedBtn:hover{color:rgba(235,240,250,1);}
.speedBtn:hover span:first-child{transform:scale(1.05);}
.speedBtn:active{transform:scale(.95); transition-duration:.08s;}
.speedCaret .fa{font-size:12px; opacity:.85; color:var(--icon)!important; transition:transform .25s var(--ease-bounce);}
.speedBtn:hover .speedCaret .fa{transform:translateY(3px) rotate(180deg);}

.progressPill{flex:0 0 auto; display:flex; align-items:center; gap:8px; padding:6px 10px; border-radius:var(--r2); border:none; background:var(--surface-2); box-shadow:var(--shadow3); min-width:220px; transition:background .2s ease;}
.progressPill:hover{background:var(--surface-3);}
.progressLabel{font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--textMuted); margin-right:2px; transition:color .2s ease;}
.progressPill:hover .progressLabel{color:var(--textMuted);}
.progressBar{width:120px; height:8px; border-radius:999px; border:none; background:rgba(140,165,220,.04); overflow:hidden; transition:height .2s var(--ease-bounce);}
.progressPill:hover .progressBar{height:10px;}
.progressBar>div{height:100%; width:0%; background:rgba(136,164,196,.75); transition:width .4s var(--ease-spring);}
.progressPct{font-family:var(--mono); font-size:12px; color:var(--text); font-variant-numeric:tabular-nums; letter-spacing:.02em; min-width:58px; text-align:right; transition:color .2s ease;}
.progressPill:hover .progressPct{color:rgba(235,240,252,.98);}

.timeSep{color:rgba(175,185,210,.78);}
.seek:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px rgba(136,164,196,.45), 0 2px 6px rgba(0,0,0,.30);}
.vol:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px rgba(136,164,196,.45), 0 1px 4px rgba(0,0,0,.25);}
.seek:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px rgba(136,164,196,.45), 0 2px 6px rgba(0,0,0,.30);}
.vol:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px rgba(136,164,196,.45), 0 1px 4px rgba(0,0,0,.25);}

/* Mute button */
.volMuteBtn{border:none; background:transparent; padding:0; margin:0; cursor:pointer; display:flex; align-items:center; justify-content:center; width:14px; height:14px; flex:0 0 auto;}
.volMuteBtn .fa{font-size:14px; color:var(--iconStrong)!important; opacity:.95; transition:transform .2s var(--ease-bounce), opacity .15s ease;}
.volMuteBtn:hover .fa{transform:scale(1.15); opacity:1;}
.volMuteBtn:focus-visible{outline:2px solid rgba(136,164,196,.45); outline-offset:2px; border-radius:3px;}
.miniCtl.muted{opacity:.5;}
.miniCtl.muted .volFill{opacity:.3;}

/* Seek feedback overlay */
.seekFeedback{
  position:absolute;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  font-family:var(--mono);
  font-size:28px;
  font-weight:700;
  color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.7);
  opacity:0;
  transition:opacity .15s ease;
  pointer-events:none;
  z-index:6;
}
.seekFeedback.show{opacity:1;}

/* Error overlay */
.errorOverlay{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:16px;
  background:rgba(15,17,23,.88);
  z-index:10;
}
.errorOverlay>.fa{font-size:42px; color:rgba(255,180,100,.85);}
.errorMsg{font-size:14px; color:rgba(218,225,240,.85); text-align:center; line-height:1.5; max-width:320px;}
.errorNextBtn{
  border:none;
  background:var(--surface-3);
  color:var(--text);
  padding:10px 20px;
  border-radius:var(--r2);
  font-size:13px;
  font-weight:600;
  cursor:pointer;
  min-width:44px;
  min-height:44px;
  transition:background .2s ease;
}
.errorNextBtn:hover{background:var(--surface-4);}
.errorNextBtn:focus-visible{outline:2px solid rgba(136,164,196,.45); outline-offset:2px;}
